• ベストアンサー

エクセルVBAの変数利用

シートのC1セルに入力したブック名をアクティブにするための 変数なのですが、アクティブになりません。 下のようにしていますが、とのようにすればよいでしょうか? Sub test() Dim FileName As Range FileName = ThisWorkbook.Path & "\" & Sheets("sheet1").Range("C1") & ".xls" Workbooks.FileName.Activate End Sub

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

  • ベストアンサー
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.4

>Dim FileName As Range ↓では? Dim FileName As String

4k3s4r3
質問者

お礼

ありがとうございました。できました。ここなんですね! でも基本中の基本なのですが、RangeやStringってまだピンと こないです・・・・。

その他の回答 (3)

noname#187541
noname#187541
回答No.3

No.2です。 間違いがあったので訂正です。 Workbooksはオブジェクトではなくコレクションです。

4k3s4r3
質問者

お礼

こんにちは。#1さんと同じ内容ですが ↓こうでしょうか? うまくいきません・・・。 オブジェクト変数または With ブロック変数が設定されていません。 となります。 Dim FileName As Range FileName = Sheets("sheet1").Range("C1").Value & ".xls" Workbooks(FileName).Activate

noname#187541
noname#187541
回答No.2

こんにちは。 アクティブにならないと言うより、コンパイルエラー等のエラーになりませんか? WorkbooksオブジェクトにFileNameと言うプロパティはありません。 ファイル名はWorkbooksオブジェクトに引数として渡してください。 このようになります。 Workbooks(FileName).Activate どうでしょうか。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

↓では? FileName = Sheets("sheet1").Range("C1").Value & ".xls" ブックを開くのではなく、開いているブックをアクティブにするだけですよね?

4k3s4r3
質問者

お礼

こんにちは。↓こうでしょうか? うまくいきません・・・。 オブジェクト変数または With ブロック変数が設定されていません。 となります。 Dim FileName As Range FileName = Sheets("sheet1").Range("C1").Value & ".xls" Workbooks(FileName).Activate

関連するQ&A