ワークシートのオブジェクトを取得するには、インデックス番号を指定するかワークシート名を指定して Worksheet オブジェクトを取得していましたが、取得する Worksheet オブジェクトを指定する方法として、現在アクティブになっているワークシートと指定することが出来ます。ここでは Excel VBA を使ってアクティブシートのオブジェクトを取得する方法を解説します。
ワークシートの最終セル(最終行、最終列)を取得する… VBAをはじめた人は誰しも最初に引っかかる問題ではありますが、幸いにもインターネットで検索するといくつもの解決法が見つかります。 ところが…動いたり動かなかったり、想定外の動作をすることがあります。そもそもいくつもの解決法があること自体おかしい、いったい本当の答えはどれ?この際、白黒はっきりさせようじゃないかというのがこのページの趣旨です。 <S1> ワークシートの最大行、最大列を取得する MaxRow = Rows.Count MaxCol = Columns.Count まず基本からですが、ワークシートの最大行、最大列を取得するコードです。もちろんこれ自体は最終行、最終列を取得するものではありません。 Rowsはワークシートの行全体をあらわすオブジェクトで、Columnsは列全体をあらわすオブジェクトです。そのメソッドCountは数
ブックを開くには、WorkbooksコレクションのOpenメソッドを使います。 Excelでは、同時に複数のブックを開くことができます。開いているそれぞれのブックはWorkbookオブジェクトとして操作できます。このWorkbookオブジェクトの集合体がWorkbooksコレクションです。新しいブックを開くということは、この集合体に、新しいメンバーを加えるということです。だからWorkbooksコレクションのOpenメソッドです。 次のコードは、C:\Book1.xlsxを開きます。 Sub Sample1 Workbooks.Open "C:\Book1.xlsx" End Sub Workbooks.Open Filename:="C:\Book1.xlsx" という書き方もできます。 「Filename:=」の意味や、つけるのとつけないのとでは何が違うかについては、下記ページを参考に
ブックを開くマクロとして、次のようなコードをよく見ます。 Sub Sample1() Workbooks.Open Filename:="C:\Book1.xlsx" End Sub あるいは、まったく同じブックを開くマクロでも、次のように解説されていることがあります。 Sub Sample1() Workbooks.Open "C:\Book1.xlsx" End Sub 「Filename:=」が付くのと付かないのでは、いったい何が違うのでしょう。 命令とオプションの関係 VBAのオブジェクト式には、次の2種類があります。 (1)対象.様子 = 値 (2)対象.命令 (1)は対象の様子や状態を設定する命令です。セルの背景色を設定したり、ワークシートに名前を付けるときなどに使います。この"様子"を専門用語でプロパティと呼びます。一方の(2)は、何らかのアクションを起こさせるようなときに使
VBAのコードで、ときどき「:=」という記号を見かけます。たとえば次のようなコードです。 Sub Sample1() Workbooks.Open Filename:="Book1.xls" End Sub これは、Book1.xlsを開くマクロですが、これを次のように書くとエラーになります。 Sub Sample2() Workbooks.Open Filename = "Book1.xls" End Sub 上記のコードは、引数Filenameに"Book1.xlsx"という文字列を設定しているので、何となく正しいようにも思えます。だって、変数に値を代入するときは「=」を使うのですから。 Sub Sample3() Dim Target As String Target = "Book1.xlsx" End Sub 値を代入(設定)するとき「=」と「:=」の違いは何なのでしょう。 「:
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く