• ベストアンサー

VBAで、パスを設定してダイアログを開きたい

いつもお世話になっております。 初心者につき、ご教示いただけますと幸いです。 使用しているエクセルに設定されているものに 少し手直しをしたいと考えております。 1、B3にパスを入力するセルがあります。 ※前回の履歴が残っています。 2、C3にダイアログを開くボタンがあります。 ※この時に設定したパスを 1のセルに反映するボタンでもあります。 →2のボタンで 自ブックのパス(または、1のセルに入っているパス) を用いて、ダイアログを開きたいです。 どのようなコードで実装可能でしょうか。 是非ともご教示のほど、よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

Googleしょうかいしたらすぐ出てくるよ。 「vba ファイルダイアロウグ」で照会。 https://www.moug.net/tech/exvba/0060013.html 等。 Sub Sample1() Dim myFile As Variant ChDir "C:\Users\xx\xxxxx" myFile = Application.GetOpenFilename("CSVファイル(*.csv),*.csv") If VarType(myFile) = vbBoolean Then MsgBox "キャンセルされました" Else MsgBox myFile & " が選択されました" End If End Sub テスト済み。

その他の回答 (1)

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.1

ボタンのプロシージャに(自ブックのパスだと) Dim OpenFileName As String ChDrive Split(ThisWorkbook.Path, "\")(0) ChDir ThisWorkbook.Path OpenFileName = Application.GetOpenFilename("Excel ブック,*.xls?")

関連するQ&A

  • エクセル 保存是非のダイアログを出さずに保存VBA

    エクセル 保存是非のダイアログを出さずに保存VBA エクセルファイルの ひとつのブック L.xlsxの特定のセルを 別のブックR.xlsxのセルにコピーするを VBAコードで コピーまでは出来たのですが R.xlsxのブックを保存するかどうかの ダイアログが出てしまいます これが出ないで保存できるように ActiveWorkBook.Save これを入れてもやはり保存是非の確認が 出てしまいます コードは -------------------- Sub ID移動() Dim x As Workbook Dim y As Workbook Workbooks.Open Filename:="C:\Users\USER\Desktop\ACCESS\L.xlsx" Set x = Workbooks("L.xlsx") Workbooks.Open Filename:="C:\Users\USER\Desktop\ACCESS\R.xlsx" Set y = Workbooks("R.xlsx") y.Sheets("sheet1").Range("A2") = x.Sheets("output").Range("B2") x.Close y.Close ActiveWorkBook.Save End Sub ------------------ 保存是非のダイアログがでないで 保存できるための方法を 御教示いただけますか win10 office365 すみませんが 宜しくお願い致します

  • Excel2000:「セルの書式設定」ダイアログが表示されない

    お世話になっております Excel2000を使用しております。 あるセルに対し、右クリックメニュー「セルの書式設定」を選択したのですが、何も表示されません。 ・シート、ブックの保護はかけられておりません。 ・また、Excel2002では表示されます。 ・ファイルはExcel2000形式です。 ・Application.Dialogs( xlDialogAlignment ).Show  などで無理やり出すことは出来ました。 この状態で「セルの書式設定」ダイアログが表示されない原因は どのようなところにございますでしょうか ご教示の程、何卒よろしくお願いいたします。

  • フォルダ名だけを取得するVBA

    VBAを使ったエクセルテンプレート適用ツールを作成しているのですが そのVBAのことで教えてください。 現在自作のフォーム上にあるテキストボックスにフルパスが入っているとします(添付図参照)。 *この前提は必須と考えてください。 次に作成ボタンをクリックすると Step1 新しいブックが開かれ行幅や書式などが自動で調整されます。 Step2 ブックの保存ダイアログが自動で開きます。     ただし、保存ダイアログが開いた時点で自作フォーム中の     テキストボックスで指定したフルパスに移動しており、     且つ移動先のフォルダ名(<-注意!!フルパス名ではありません!!)と     同じ文字列をファイル名入力欄に自動で入力されるようにします。    ex) D:\MyProject\Project01\TaskA\にブックを作成し保存する場合、      保存ダイアログのファイル名欄にTaskAとだけ書く。 マクロ自体はここでストップし、これ以降はユーザーがそのファイルメモで 保存してよいかどうかを判断し、問題なければ手動でダイアログ上の「保存」ボタンを押します。 問題はStep2で、保存先のフォルダ名と同じ文字列を保存ダイアログのファイル名に記入するには どのようなコードを書いたらよいでしょうか。 私自身としては下記の二案を考えているのですがそれぞれについて疑問があるので教えてください。 案1 作成ボタンを押した時点でテキストボックスに書かれているフルパスの文字列から   末尾にあるフォルダ名だけを取得して変数に代入し、これを保存ダイアログの   ファイル名欄に反映させる。   疑問:テキストボックスのValue値に書かれているフルパスを示す文字列から      末尾のフォルダ名だけを取得するためのコードは何と書けばよいのでしょうか? 案2 ブックの保存ダイアログが開いて保存先のパスに移動してから今保存ダイアログで    開いているフォルダ名を取得する。    疑問:今アクティブになっているブックが保存されているフォルダ名だけを取得する    方法なら確かあったような気がしています。    しかし今保存ダイアログで表示されているフォルダ名を取得するコードは何と    書けばよいのでしょうか?    そもそもそういったコードや操作自体VBAにあるのでしょうか?

  • コモンダイアログのファイルを開くについて

    Windowsのファイルを開くダイアログで、ファイルを開くダイアログから エクセルファイルを選択し、開くボタンを押したら、選択された エクセルファイルを開きたいのですが、ヘルプで参照したところコモンダイアログ があるのを知りました。 ダイアログを開くところまでは、できたのですが、次にエクセルファイルを選択 し、開くボタンを押したときのイベントってどうやってとればよいのかわかりません。 開くボタンを押時に、選択されているパスを取りたいのですが、それもどうやって 取ればよいのやら、、、(+_+) ご教示ねがえませんでしょうか? よろしくお願いいたします。

  • Excel97のVBAでコモンダイアログを使いたい

    現在Excel97で二つのテキストデータベース(固定長形式)を読み込み、解析を行おうとしています。 現在、べたに二つのファイルのパスをコードに書き込めばファイルの読み込みも上手くいくのですが、やはりここは出来るならばファイル指定を汎用のダイアログで行えるようにしたいと思いあれこれ方法を探しています。 そこで読み込みたい二つのファイルのパスを、VBで利用できるCommonDialogで取得出来るなら、一からファイル選択用フォームを作成しなくても済むので楽になると思いついたのですが、Excel97のVBAでの転用がうまくいかなくて企画倒れの状態になっています。 参照設定でComCtrl32.OCXを読み込めればと思い試験してみたもののうまくいかず、次の方法が見つからずに途方に暮れています。 もしかしてVBAではコモンダイアログは利用できないのでしょうか?

  • EXCEL VBA 別のブックへの転記について

    ユーザーフォームを利用してEXCELにてデータベースを作成しております。 データ入力後は、コマンドボタンをクリックし シートへデータを記録するコードを書きました。 その際に、同フォルダ内に設置している、別のブックを開き 同様にデータを書き込みたいと思っています。 コードを書くにあたり、以下の点を盛り込んでみましたが、エラーは出ないのですが 数値の反映が出来ておらず、必要な別ブックがオープン出来ていない気配です 1、ブックオープン時、開いているかどうか調べ   開いてる   →メッセージなし  データの書き込み   開いていない →ブックを開く    データを書き込む 2.別ブック 書き込むセルは、最下部のセル 3.作業終了後、別のブックは保存して閉じる 4.ブックの指定は、同フォルダ内なので、作業PC移動も考慮し   パス名は、できる限り省略もしくは取得して設定したい  フォルダ名                 「データ記録システム」  ユーザフォームを起動させるブック   「全データ.xls」  別ブック                   「管理用データ.xls」 EXCELは2003を利用していますが、近日中に2007へ移行いたします まだまだ未熟なので、恥ずかしい限りですが どうぞご教授頂けますようよろしくお願いいたします

  • エクセル内でのVBAの質問です。

    閲覧ありがとうございます。 エクセルの作業ファイルにてVBAのコードを作成しているのですが、中々思う通りに実行できないので、ご教授願います。 実行したい内容については以下の通りです。 ボタン1を押すと(添付画像上段のブック)、マイドキュメント内にある「データ転送ソフト2」という名前のブックを開き、そのブックのシート「A」内(添付画像下段)の、ボタン1を押したシートのF1セル(添付画像上段のブック)と同じ文字(日付)の列と"う"と入力された行の交差したセルの数値(添付画像下段の紫色のセル)をコピーして、ボタン1を押したシートのT4のセル(転送値1:の右隣にある薄緑のセル)に貼り付ける作業が行えるコードをご教授願いたいです。 要約しますと、作業しているシートのボタン1を押すと、別の場所にあるブックを開き、そのシート内の条件に沿った数値をコピーして、作業しているシートの指定されたセルに貼り付ける作業が行いたいです。 とても分かりにくい文章で申し訳ございませんが、お願いします。 可能ならば、コードの解説もつけてくださると嬉しいです。

  • 参照したいブックのパス名に"["

    外部参照についてお尋ねします。 他のブックを参照するのに ='パス名[ブック名]シート名'!セル名 と入力しますが、参照したいブックの保存フォルダ名に"[ ~ ]"と角カッコが使われています。 ここがブック名を括るカッコと認識されてしまい、参照がうまくできません。 パス名のカッコをエスケープする方法はありますでしょうか。 諸事情からフォルダ名や被参照ブックの移動などができないので困っています。 ご存知の方いらっしゃいましたら、ご教示いただけますようお願いいたします。

  • エクセルで幽霊リンク?探しのVBA

    エクセルで幽霊リンク?を探してます。 BOOKを開く際に、「リンクを更新しますか?」とは聞かれませんが、メニューの編集、「リンクの設定」には表示されます。 、「リンクを更新しますか?」と聞いてこないので、セルの数式が他BOOKを参照してるのではないと思いますが、一応、セル内の数式も\マークを検索してチェック済みです。 「名前の定義」も下記のコードでチェックしました。 Sub Names_Check() Set Sh = ActiveWorkbook.Worksheets.Add For Each na In ActiveWorkbook.Names i = i + 1 Sh.Cells(i, 1) = na.Name Sh.Cells(i, 2) = Mid(na.RefersTo, 2) Next End Sub 残されたのは貼り付けた図形やボタン等のオブジェクトが他BOOKのセルを参照しているか、リンク先に他BOOKのセルを指定しているか、他BOOKのマクロを設定してあるかだと思います。しかし、オブジェクトのリンクを取得するコードがわかりません。 ご教示くださいますようお願いいたします。

  • VBA教えて下さい

    VBA教えて下さい。 初心者です。 例えば A1セルに数値を入力して コマンドボタンを押すと B1~B20のセルに全てその数値が反映される その反映された数値は赤色にする これだけならば private sub commandbutton_click() range("B1:B20")=range("A1") range("B1:B20").font.color=vbred でいけますが 私がやりたいのは更に A1に数値を入力して コマンドボタンを押すと B1~B20のセルに全てその数値が反映される その反映された数値は赤色にする しかし、B1~B20のセルのどれかのセルが背景色黄色にした場合 黄色背景色より上のセルはA1に入力された数値は無視し 黄色背景色より下のセルはA1に入力された数値を反映する といった内容です。 どうしてもできません コードを書いてもらえるとすごく助かります。 回答お願いします。

専門家に質問してみよう