プロが教えるわが家の防犯対策術!

Excel2013で、あるファイルを使用している時に、別のブックを開きたいとして、
例えば、D:\oshiete\Desktop\2014年\開きたい.xlsm
とT6セルにいれてあり、VBAを読み込むと開くようにするにはどうすればよいでしょうか?

はじめに、エラー回避でファイルが存在しているのと、まだ開いていないことを確認してから動かしたいです。 色々やってみたけどうまくいかなかったので、よろしくお願いいたします。

A 回答 (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
「エクセルVBAでセルに入力したパスでブッ」の回答画像2
    • good
    • 1
この回答へのお礼

問題なくバッチリ動作しました。
どうもありがとうございました。

お礼日時:2014/09/23 00:16

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
「エクセルVBAでセルに入力したパスでブッ」の回答画像1
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A