ワークブックを開いて保存するためのダイアログボックスを使用して
ExcelファイルをVBAで開いたり保存したりする方法はすでに知っています。 WorkbookオブジェクトのOpenメソッドとSaveAsメソッドを使用するだけです。ただし、これにはファイルのパスをハードコーディングする必要があります。ただし、ほとんどの場合、エンドユーザーはGUIを使用してファイルを選択するか、[ファイルを開く]または[名前を付けて保存]ダイアログボックスを使用して、ファイルの場所を視覚的かつ簡単に選択できます。
この記事では、ワークブックを開くダイアログボックスを表示してダイアログボックスとして保存するために使用されるコードについて説明します。
ダウンロードできるワークブックを添付しました。この記事に添付されているワークブックには、3つのマクロが含まれています=== [ファイルを開く]ダイアログを使用してファイルを開くVBAコードこのコードでは、アプリケーションのGetOpenFilenameメソッドを使用します。 GetOpenFilenameメソッドの構文は次のとおりです。
Application.GetOpenFilename([FileFilter]、[FilterIndex]、[Title]、[ButtonText]、[MultiSelect]) [FileFilter]:選択フォルダーに1種類のファイルのみを表示するように定義できます。 「Excel-ファイル、.xlsx、.xls、*。xlsm」などと書く場合
その場合、ファイルを開くダイアログボックスのフォルダからExcelファイルのみが表示されます。
[FilterIndex]:*使用するファイルフィルターの数です。
[タイトル]:ダイアログボックスのタイトル。
[ButtonText]:*ボタンのテキストを指定します。重要ではありません。
[MultiSelect]:ブール変数です。 Trueまたは1に設定すると、複数のファイルを選択できます。 falseに設定すると、選択できるファイルは1つだけになります。
十分な理論。いくつかの呪文をやってみましょう。
一度に1つのファイルを開くためのVBAコード
Option Explicit Sub OpenOneFile() Dim FileName As Variant 'Displaying the open file dialog box FileName = Application.GetOpenFilename("Excel-files,*.xls", _ 1, "Select One File To Open", , False) 'User didn't select a file If TypeName(FileName) = "Boolean" Then Exit Sub 'Open the workbook Workbooks.Open FileName End Sub
どのように機能しますか?
このコードセグメントを実行すると、ApplicationオブジェクトのGetOpenFilenameメソッドによって[ファイルを開く]ダイアログボックスが開きます。ダイアログボックスのタイトルは、コードで定義した「開くファイルを1つ選択」になります。
ファイルを選択すると、Worbook.Openコードが実行され、ファイルが開かれます。ファイルを選択しない場合、サブはWorkbook.Openコードを実行せずに終了します。
一度に1つ以上のファイルを開くVBAコードこのコードセグメントはファイルを開くダイアログボックスを開きますが、一度に複数のファイルを選択することができます。
Sub OpenMultipleFiles() Dim FileName As Variant, f As Integer 'Displaying the open file dialog box FileName = Application.GetOpenFilename("Excel-files,*.xlsx", _ 1, "Select One Or More Files To Open", , True) 'User didn't select a file If TypeName(FileName) = "Boolean" Then Exit Sub 'Open all the workbooks selected by user For f = 1 To UBound(FileName) Workbooks.Open FileName(f) Next f End Sub
ここでは、複数選択変数をTrueに設定していることに注意してください。これにより、ファイルを複数選択できるようになります。
[名前を付けて保存]ダイアログボックスを開くVBAコード[名前を付けて保存]ダイアログボックスを開くには、ApplicationオブジェクトのGetSaveAsFilenameメソッドを使用します。メソッドの構文は次のとおりです。
Application.GetSaveAsFilename([InitialFileName]、[FileFilter]、[FilterIndex]、[Title]、[ButtonText]) [InitialFileName]:*初期ファイル名。保存中にファイルの名前を変更しない場合、ファイルはこの名前で保存されます。
[FileFilter]:選択したフォルダーに1種類のファイルのみを表示するように定義できます。 「Excel-ファイル、.xlsx、.xls、*。xlsm」などと書く場合
その場合、ファイルを開くダイアログボックスのフォルダからExcelファイルのみが表示されます。
[FilterIndex]:ファイルのフィルターインデックス。
[タイトル]:*ダイアログボックスのタイトル。
[ButtonText]:*これはMacシステムでボタンの名前を変更するために使用されます。
コードについては以下に従ってください
Sub SaveFile() Dim FileName As Variant 'Displaying the saveas dialog box FileName = Application.GetSaveAsFilename("MyFileName.xls", _ "Excel files,*.xls", 1, "Select your folder and filename") 'User didn't save a file If TypeName(FileName) = "Boolean" Then Exit Sub 'Save the workbook ActiveWorkbook.SaveAs FileName End Sub
SaveFile Macroは、ApplicationオブジェクトのGetSaveAsFilenameメソッドを使用して[名前を付けて保存]ダイアログボックスを開き、ファイル名を割り当て、ブックを保存する場所を選択します。
そうですね、これがダイアログボックスを使用してVBAを使用してファイルを開いたり保存したりする方法です。お役に立てば幸いです。この記事またはその他のVBAトピックについて疑問がある場合は、以下のコメントセクションで質問してください。
関連記事:
`link:/ import-and-export-in-vba-use-a-closed-workbook-as-a-database-dao-using-vba-in-microsoft-excel [閉じたワークブックをデータベースとして使用(DAO) MicrosoftExcelでVBAを使用する] `|閉じたブックをDAO接続のデータベースとして使用するには、ExcelでこのVBAスニペットを使用します。
`link:/ import-and-export-in-vba-use-a-closed-workbook-as-a-database-ado-using-vba-in-microsoft-excel [閉じたワークブックをデータベースとして使用(ADO) MicrosoftExcelでVBAを使用する] `|閉じたブックをADO接続のデータベースとして使用するには、ExcelでこのVBAスニペットを使用します。
link:/ applications-word-outlook-in-vba-getting-started-with-excel-vba-userforms [Excel VBAUserForms入門]
| *データベースにデータを挿入するには、フォームを使用します。 Excelユーザーフォームは、ユーザーから情報を取得するのに役立ちます。 VBAユーザーフォームから始める方法は次のとおりです。
===
`link:/ user-forms-input-boxes-in-vba-change-the-valuecontent-of-several-userform-controls-using-vba-in-microsoft-excel [いくつかのUserForm-controlsの値/コンテンツを変更しますExcelでVBAを使用する] `| *ユーザーフォームコントロールのコンテンツを変更するには、この単純なVBAスニペットを使用します。
`link:/ user-forms-input-boxes-in-vba-prevent-a-userform-from-closeing-when-the-user-clicks-the-x-button-using-vba-in-microsoft-excel [ ExcelでVBAを使用して、ユーザーがxボタンをクリックしたときにユーザーフォームが閉じないようにします] `|ユーザーがフォームのxボタンをクリックしたときにユーザーフォームが閉じないようにするために、UserForm_QueryCloseイベントを使用します。
人気の記事:
link:/ keyboard-formula-shortcuts-50-excel-shortcuts-to-increase-your-productivity [生産性を高めるための50のExcelショートカット]
|あなたの仕事をより速くしてください。これらの50のショートカットにより、Excelでの作業がさらに高速になります。
link:/ forms-and-functions-introduction-of-vlookup-function [ExcelのVLOOKUP関数]
|これは、さまざまな範囲やシートから値を検索するために使用される、Excelの最も使用され人気のある関数の1つです。
link:/ Tips-countif-in-microsoft-excel [COUNTIF in Excel 2016]
|この驚くべき関数を使用して、条件付きの値をカウントします。特定の値をカウントするためにデータをフィルタリングする必要はありません。
ダッシュボードを準備するには、Countif関数が不可欠です。
link:/ excel-formula-and-function-excel-sumif-function [ExcelでSUMIF関数を使用する方法]
|これは、ダッシュボードのもう1つの重要な機能です。これは、特定の条件で値を合計するのに役立ちます