お知らせ
howahowablogのVBA記事が電子書籍にて販売となりました。
目標
Excelのオブジェクトへの操作を体験して動きを把握し利用できる
ブックの操作方法を確認して動きを把握できる
オブジェクトの概要と操作
オブジェクトの概要についてはこちらを参考にしてください。
Excelブックの準備
デスクトップに適当なフォルダを準備(この記事では「vbaDevFolder」)してその中にマクロを記述するブックの「Usingobject.xlsm」ファイルと操作される側の中身が空のシート「newBookOpen.xlsx」ファイルを配置します。
Excelブックの操作
サンプルプロシージャ1
Sub bookObjectOpe()
'##################################################
'# ブックの操作 #
'##################################################
'ブックまでのパスを確認します。(VBAでの操作ではありません。)
'ファイルを右クリックしてプロパティから確認します。
'「newBookOpen.xlsx」のブックを開きます。
'---------------------------------------------------------------------------------------------
Workbooks.Open Filename:="C:\Users\User\Desktop\vbaDevFolder\newBookOpen.xlsx"
'---------------------------------------------------------------------------------------------
'ブックまでのパスを取得します。(VBAでの操作)
'「ThisWorkbook.Path」を利用します。これでVBAが動いているファイの
'格納されているフォルダまでのパスを取得できます。その後連結演算子の「&」を利用して
'ファイルまでのフルパスを作成します。
'(今回は「Usingobject.xlsm」が格納されているフォルダまでのパスを取得します。)
'---------------------------------------------------------------------------------------------
Dim filePath As String
'変数「filePath」に「newBookOpen.xlsx」までのフルパスを代入します。
filePath = ThisWorkbook.Path & "\newBookOpen.xlsx"
MsgBox filePath
'---------------------------------------------------------------------------------------------
'「newBookOpen.xlsx」ブックのを保存します。
'---------------------------------------------------------------------------------------------
Workbooks("newBookOpen.xlsx").Activate
'保存の前に文字を入力してみます。
Range("A1").Value = InputBox("文字を入力")
'ブックを保存します。
ActiveWorkbook.Save
'---------------------------------------------------------------------------------------------
'ブックの別名保存
'---------------------------------------------------------------------------------------------
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\newBookSave.xlsx"
'---------------------------------------------------------------------------------------------
'ブックを閉じます。
'---------------------------------------------------------------------------------------------
ActiveWorkbook.Close
'---------------------------------------------------------------------------------------------
'ファイルの種類を指定してエクスプローラを開きます。
'GetOpenFilenameは現在のカレントフォルダを開きます。
'ChDir関数を利用してカレントフォルダを変更できます。
'---------------------------------------------------------------------------------------------
ChDir "C:\Users\User\Desktop\vbaDevFolder\"
Application.GetOpenFilename ("エクセルファイル,*.xlsx")
'---------------------------------------------------------------------------------------------
End Sub
ステップモードで動作を確認
VBAの中で使用するパスを確認して設定を行う
「vbaDevFolder」内の何れかのファイルで右クリックしてメニューを表示し、「プロパティ」を選択します。
ダイアログボックスが表示されたら中央付近の「場所:」の部分を確認します。これがこのファイルのある場所(現在のパス)になります。このパスをVBAのプログラムの中で利用します。
実行結果
次のプログラムにある「ダブルクォーテーション””」の中は利用しているPCによって変更が必要です。この記事の上にあるパスの確認を行って場所に表示されたパスをコピペして上書きをします。今回は”C:\Users\User\Desktop\vbaDevFolder”とあるのでここに「¥ファイル名」としてファイルをつなげます(「\newBookOpen.xlsx」)。
カレントディレクトリに設定した「”C:\Users\User\Desktop\vbaDevFolder”」が開きます。この時、GetOpenFilenameの第一引数で指定したファイルで、第二引数で指定した拡張子のものを表示します。
今回は以上となります。
howahowablogのVBA記事が電子書籍にて販売となりました。
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。