- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでSplitエラーです)
VBAでSplitエラーが発生!原因と解決方法は?
このQ&Aのポイント
- VBAでSplit関数を使用している際にエラーが発生し、別のブックでは正常に動作しないという問題があります。エラーメッセージは「モジュールではなく、変数またはプロシージャを指定してください」と表示されます。原因としては、ブック内で使用する変数やプロシージャが正しく指定されていない可能性があります。
- 解決方法としては、以下の点を確認してみてください。まず、変数やプロシージャが正しく宣言されているかを確認します。変数やプロシージャのスコープや名前が正しいかどうかも重要です。また、他のモジュールやプロシージャで同じ名前の変数やプロシージャが定義されていないかも確認してください。
- さらに、Split関数を使用せずに別の方法で同じ処理を行うことも可能です。例えば、文字列の中に特定の文字が含まれているかを確認し、条件に応じて文字列を分割する方法が考えられます。具体的な実装方法については、VBAのドキュメントやオンラインの情報を参考にしてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>【モジュールではなく、変数またはプロシージャを指定してください】 プロシージャ名が、モジュール名と同じなのではありませんか? もしくは、その逆なのかと思います。 >Cells(1, 1)の値は別のプロシージャ求めていてその都度変わります 意味が分かりませんが、それは無視します。 なお、(13)は、ワークシートでは、-13にキャストされてしまうはずですが、それも無視します。 他に、Str は、関数にありますから、使い方によって不具合が生じます。 '// Sub Test1() Dim strAr As String Dim i As Long Dim j As Long Dim tmp As Variant j = 1 With ActiveSheet strAr = .Cells(1, 1).Value '◆カンマで区切った文字列をD列に格納 tmp = Split(strAr, ",") For i = 0 To UBound(tmp) .Cells(j, 4).Value = tmp(i) j = j + 1 Next i End With End Sub
お礼
モジュール名にSplitを使っていました モジュール名を変えたら動きました それと strArとWith ActiveSheetは勉強になりました ありがとうございます