• ベストアンサー

現在アクティブなワークブック名によって条件分岐させたいのですが

現在アクティブにしているワークブック名によって条件を分岐させたいのですが、下記のように記述すると「型が一致しません」とエラーが出てしまいます。これは何がおかしいのでしょうか。 (デバックモードでIf~Thenまでが黄色でマークされます) Excel2000を使用しています。よろしくお願いします。 Dim t As Single If ActiveWorkbook.Name="AAA.xls" Or "BBB.xls" _ Or "CCC.xls" then t=3.5

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

Option Explicit Sub test() Dim t As Single Select Case ActiveWorkbook.Name Case "AAA", "BBB", "CCC", "book1"   t = 3.5   MsgBox "小文字" Case "Book1"   MsgBox "大文字" Case Else   t = 4 End Select 'こんな感じでは? 'IF 文ですと If ActiveWorkbook.Name = "AAA" Or _   ActiveWorkbook.Name = "BBB" Or _   ActiveWorkbook.Name = "CCC" Then t = 3.5 End If 'VBAではこんな風 'なお 大文字と小文字を区別するようですね Debug.Print ActiveWorkbook.Name End Sub

noname#128465
質問者

お礼

解決しました。ありがとうございました。

その他の回答 (3)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.4

すみません。タイプミスがありました。訂正します。 × Select Case UCase$(ActiveWorbook.Name)       ↓ ○ Select Case UCase$(ActiveWorkbook.Name) 

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.3

こんにちは。KenKen_SP です。 >「型が一致しません」とエラーが出てしまいます。これは何がおかしいので > しょうか。 IF の構文が違います。この点は既に回答がでてますので省略。今回の場合、 Select Case を使った方がスッキリすると思います。 大文字・小文字の問題については、代表的な対策として次の3つの方法があり ます。オススメは 「対策3」です。 ・対策1 Option Compare Text   モジュールの先頭で「このモジュールでは大文字・小文字を区別しない」   と宣言しておくということです。 ・対策2 StrComp 関数で文字列比較のオプションを vbTextCompare にする   With ActiveWorbook     If StrComp(.Name, "aaa.xls", vbTextCompare) = 0 Then t = 3.5     If StrComp(.Name, "bbb.xls", vbTextCompare) = 0 Then t = 3.5     If StrComp(.Name, "ccc.xls", vbTextCompare) = 0 Then t = 3.5   End With ・対策3 UCase、LCase 関数等で比較する文字列の大文字・小文字を揃えておく   Select Case UCase$(ActiveWorbook.Name)     ’ブック名を大文字に     Case Is = "AAA.XLS", "BBB.XLS", "CCC.XLS" ’大文字で比較       t = 3.5     Case Is = "EEE.XLS"       t = 1.5     Case Else   End Select

noname#128465
質問者

お礼

解決しました。ありがとうございました。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

ActiveWorkbook.Name="AAA.xls" Or ActiveWorkbook.Name="BBB.xls" _ Or ActiveWorkbook.Name="CCC.xls" としてみたらどうでしょう

noname#128465
質問者

お礼

解決しました。ありがとうございました。

関連するQ&A

専門家に質問してみよう