- ベストアンサー
エクセルVBAでセルに入力したパスでブックを開く
Excel2013で、あるファイルを使用している時に、別のブックを開きたいとして、 例えば、D:\oshiete\Desktop\2014年\開きたい.xlsm とT6セルにいれてあり、VBAを読み込むと開くようにするにはどうすればよいでしょうか? はじめに、エラー回避でファイルが存在しているのと、まだ開いていないことを確認してから動かしたいです。 色々やってみたけどうまくいかなかったので、よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>VBAを読み込むと開くようにする すいません、ブックを開いたときに同時に開くではなく、 VBA読み込み時に開く場合は VBEから、挿入→標準モジュールで標準モジュールを挿入し 以下のコードを貼り付けてください。 Alt+F8または表示→マクロから「指定ファイルを開く」を選び実行で T6セルのファイルを開きます。 コードの内容はNo1と同じものですが、補足致します。 末尾「'★」は同様で、末尾「'☆」の行の「T6」を変更することで 対象のセルアドレスを変更できます。 ■VBAコード Sub 指定ファイルを開く() Dim i As Integer Dim filepath As String filepath = Range("T6").Value '☆ If Dir(filepath) = "" Then MsgBox filepath & vbCrLf & "はファイルが見つかりません。" '★ Exit Sub End If For i = 1 To Workbooks.Count If filepath = Workbooks(i).FullName Then MsgBox filepath & vbCrLf & "は既に開いています。" '★ Exit Sub End If Next i Workbooks.Open Filename:=Range("T6").Value End Sub
その他の回答 (1)
- eden3616
- ベストアンサー率65% (267/405)
Alt+F11でVBEを開き、 ThisWorkbookを右クリック→コードの表示を選択し 表示されたウィンドウに下記のVBAコードを貼り付けて VBEを閉じてください。 上書き後開き直すと、T6セルのパスを開きます。 (添付画面を参考にしてください) ファイルが存在しない場合、ファイルが開かれている場合に ダイアログを表示します。 ダイアログを表示させたくない場合は行末に「'★」を記述 している1行を削除してください。 ■VBAコード Private Sub Workbook_Open() Dim i As Integer Dim filepath As String filepath = Range("T6").Value If Dir(filepath) = "" Then MsgBox filepath & vbCrLf & "はファイルが見つかりません。" '★ Exit Sub End If For i = 1 To Workbooks.Count If filepath = Workbooks(i).FullName Then MsgBox filepath & vbCrLf & "は既に開いています。" '★ Exit Sub End If Next i Workbooks.Open Filename:=Range("T6").Value End Sub
お礼
問題なくバッチリ動作しました。 どうもありがとうございました。