シートを開くときは、SelectメソッドまたはActivateメソッドを使います。次のコードは、Sheet2を開いてメッセージを表示し、続いてSheet3を開きます。 Sub Sample01() Worksheets("Sheet2").Select MsgBox "Sheet2を開きました" Worksheets("Sheet3").Activate MsgBox "Sheet3を開きました" End Sub 厳密に言うと、SelectメソッドとActivateメソッドでは動作が異なりますが、そんなもの枝葉末節です。普通の人が普通のマクロを組むのでしたら「○○でなければダメ」など意識する必要はありません。ちなみに、Selectメソッドではシートをグループ化できます。次のコードはSheet1、Sheet2、Sheet3をグループ化します。 Sub Sample01_1() Workshe
さて、前項でシート内のセルやセル範囲をRangeオブジェクトに取得して操作することは説明しましたが、今度はシートやブックを越えてRangeオブジェクトを取得する方法を説明します。 前項の「RangeオブジェクトとRangeを返すプロパティ」でシート内のセルやセル範囲を「Rangeオブジェクト」に取得していろいろな形で操作・参照する方法は説明しました。 ですが、 のように、いきなり「Rangeプロパティ」や「Cellsプロパティ」から書き始める方法では、シートやブックを越えた操作・参照はできません。本章では、すでに「単一セルの転記操作」などでシートを越えた転記を説明してしまっており、何となく理解されているかも知れませんが、ここでは「Rangeオブジェクト」と同様にオブジェクト変数を用意して操作・参照することをやってみます。 では、まず、マクロを書き込んだ自分のブックのSheet3に前項の、
公開日:2013年5月以前 最終更新日:2021-09-04 第37回.ブック・シートの指定 ここまでのマクロVBA入門では、アクティブブックのアクティブシートだけを扱ってきました。

ワークシートの最終セル(最終行、最終列)を取得する…VBAをはじめた人は誰しも最初に引っかかる問題ではありますが、幸いにもインターネットで検索するといくつもの解決法が見つかります。 ところが…動いたり動かなかったり、想定外の動作をすることがあります。そもそもいくつもの解決法があること自体おかしい、いったい本当の答えはどれ?この際、白黒はっきりさせようじゃないかというのがこのページの趣旨です。 <S1> ワークシートの最大行、最大列を取得する MaxRow = Rows.Count MaxCol = Columns.Count まず基本からですが、ワークシートの最大行、最大列を取得するコードです。もちろんこれ自体は最終行、最終列を取得するものではありません。 Rowsはワークシートの行全体をあらわすオブジェクトで、Columnsは列全体をあらわすオブジェクトです。そのメソッドCountは数
シート見出しに表示されるシートの名前を設定してみましょう。 シートの名前はNameプロパティ シートの名前を操作するには、シートのNameプロパティを使います。次のコードはSheet1の名前を現在の時刻に変更します。 Sub Sample02() Sheets("Sheet1").Name = Format(Now, "hh時mm分ss秒") End Sub 既存の名前は設定できない 新しいシートの名前に、既存のシート名と同じ名前を設定することはできません。ひとつのブックに[Sheet1]が複数存在することは許されないのです。これから設定しようとしているワークシート名が、すでに他のシート名として使われているかどうか調べるには、すべてのシート名を次のようにチェックします。 Sub Sample02_2() Dim s As Variant, flag As Boolean For Each
既存のワークシートをコピーして、名前を変更するマクロというのは実務でニーズがあります。 例えば、「2014年04月」という名前の交通費精算書のようなワークシートがあったときに、月初めに「2014年04月」シートをコピーして名前を「2014年05月」に変更して、入力されていた4月分のデータを削除するといった作業をマクロにしておくというのはよく行われていることでしょう。 このとき、シート名を変更するところでエラーになってしまうことがあります。 先の例なら、既に「2014年05月」という名前のシートが存在しているのに、コピーしたシート名を「2014年05月」に変更しようとしたときです。 Sub 名前変更でエラーが出ないようにアクティブシートをコピーする() Dim sh_name As String Dim n As Long sh_name = Format(Date, "yyyy年mm月")
1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く