• 締切済み

【ExcelVBA】別ファイル・シートの表示方法について

VBA初心者です。 現在、2つのセルの入力内容に応じて表示するファイルと シートを変更するマクロを組もうとしているのですが、うまくいきません。 具体的には A2セル:表示ファイルを司る 例)A2セルの入力内容:01→ "C:\Users\test\01FDF収容表"立上げる :02→ "C:\Users\test\02FDF収容表"立上げる A3セル:表示シートを司る 例)A3セルの入力内容:01→ "sheet1"を表示 :02→ "sheet2"を表示 表示ファイルを変更するスクリプトは以下で特に問題ないのですが、 表示セルも同時に変更しようとすると、上手くいきません。 Sub OpenWorkbook() If Range("A2").Value = "01FDF" Then Workbooks.Open Filename:="C:\Users\test\01FDF収容表" End If If Range("A2").Value = "02FDF" Then Workbooks.Open Filename:="C:\Users\test\02FDF収容表" End If End Sub お手数をおかけしますが、ご回答のほどよろしくお願いいたします。

みんなの回答

回答No.5

>また、If構文が2択ではなく3択以上になった時は >どのような記載をすればいいのでしょうか? こういう質問をなさるということは、「ElseIf」をご存じないのですね。 ご存じなくてもIF文をネスト(If文の中でIf文を使う)するなどが思い浮かぶはずですが、ご質問からはそういう形跡もありません。 今回の回答は、他の方々が示されている方法がスマートで望ましいのですが、この際ですから、 If ・・・ Then ElseIf ・・・ Then Else End If という構文を使ってしっかり身に付けた方が、ご自信のためによろしいかと思います。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.4

>また、If構文が2択ではなく3択以上になった時は A2,A3 に正しく入力されるなら以下でいかがでしょうか? Sub OpenWorkbook() Dim Wbook As String Dim Sht As String Wbook = Range("A2") Sht = Range("A3") If Wbook <> "" Then Workbooks.Open Filename:="C:\Users\test\" & Wbook & "FDF収容表" Else Exit Sub End If Sheets("Sheet" & Val(Sht)).Select End Sub

  • yucco_chan
  • ベストアンサー率48% (828/1705)
回答No.3

#2です。連投すみません。 #2は、A2のセルに 01FDF と入力したときです。 A2が、 01 なら Workbooks.Open Filename:="C:\Users\test\" & Wbook & "FDF収容表"

  • yucco_chan
  • ベストアンサー率48% (828/1705)
回答No.2

#1さんのを流用して、3択以上、Sheetは9まで Sub OpenWorkbook() Dim Wbook As String Dim Sht As String Wbook = Range("A2") Sht = Right(Range("A3"), 1) 'Sheet1-9のみ Workbooks.Open Filename:="C:\Users\test\" & Wbook & "収容表" Sheets("Sheet" & Sht).Select End Sub

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

これでいかがでしょうか? Sub OpenWorkbook() Dim Wbook As String Dim Sht As String Wbook = Range("A2") Sht = Range("A3") If Wbook = "01" Then Workbooks.Open Filename:="C:\Users\test\01FDF収容表" ElseIf Wbook = "02" Then Workbooks.Open Filename:="C:\Users\test\02FDF収容表" Else Exit Sub End If If Sht = "01" Then Sheets("Sheet1").Select ElseIf Sht = "02" Then Sheets("Sheet2").Select End If End Sub

24032403
質問者

お礼

ありがとうございます! うまく動くことを確認しました! 本当に助かりました!! また、If構文が2択ではなく3択以上になった時は どのような記載をすればいいのでしょうか? ご回答いただいた後でまた質問というのも 非常にぶしつけなのですが、ご回答いただけるとありがたいです。 例)A2セルの入力内容:01→ "C:\Users\test\01FDF収容表"立上げる :02→ "C:\Users\test\02FDF収容表"立上げる :03→ "C:\Users\test\03FDF収容表"立上げる A3セル:表示シートを司る 例)A3セルの入力内容:01→ "sheet1"を表示 :02→ "sheet2"を表示 :03→ "sheet3"を表示

関連するQ&A