• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA 型が一致しません)

VBA型が一致しません

このQ&Aのポイント
  • VBAのマクロでユーザーフォームを使用して印刷設定を行おうとしていますが、型が一致しないエラーが発生しています。
  • ユーザーフォームにはトグルボタンとコマンドボタンのみ使用しており、必要なシートの名前を選択できるようになっています。
  • しかし、TgLB_cap のデータ型を変更しても型が一致しないエラーが発生し、解決策を見つけることができません。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

ユーザーフォーム上にはオブジェクト名ToggleButton1~ToggleButton4 トグルボタンが有りそれぞれCaptionにはシート名が記されています。 の条件でお試しください。 Private Sub CommandButton1_Click()   Dim sEnt_sh()   Dim i As Long, j As Long   For i = 1 To 4     If Me.Controls("ToggleButton" & i).Value Then       j = j + 1       ReDim Preserve sEnt_sh(1 To j)       sEnt_sh(j) = Me.Controls("ToggleButton" & i).Caption     End If   Next   Sheets(sEnt_sh).Select End Sub

ichidahechima
質問者

お礼

回答ありがとうございます。 おかげさまでうまく作動しました! 本当にありがとうございました。

その他の回答 (2)

  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.3

sEnt_shこの変数は配列ではないのに UBound関数を利用しているからでは Dim sEnt_sh() As Variant

ichidahechima
質問者

補足

回答ありがとうございます。 宣言のところに()を追加しましたが、やはり型が一致しませんと出てしまいました。

  • f272
  • ベストアンサー率46% (8530/18260)
回答No.1

Dim sEnt_sh As Variant を ReDim sEnt_sh(1) As String または ReDim sEnt_sh(1) As Variant としたらどうでしょうか?

ichidahechima
質問者

補足

回答ありがとうございます。 入れてみあのですが、今度は ReDim Preserve sEnt_sh(UBound(sEnt_sh) + 1) の部分で配列は既に宣言されていますとエラーが出てしまいました。

関連するQ&A

専門家に質問してみよう