• 締切済み

VBA(エクセル)のコンパイルエラー

お世話になります。 下記のマクロを記述したのですが、ウエから7行目の mid(Cells(i, colNum + 1).Value, 7, 11) のところで、下記のようなコンパイルエラーが出てしまいます。 試しに".Value"をとっても見ましたが、結果は同じでした。 どこをどう直せばよろしいのでしょうか、よろしくご指南くださいませ。 Sub mid_ac() Dim i As Integer Dim colNum As Integer i = 2 colNum = ActiveCell.Column Do Until Cells(i, 1).Value = "" Cells(i, colNum).Value = mid(Cells(i, colNum + 1).Value, 5, 10) i = i + 1 Loop End Sub コンパイルエラー: モジュールではなく、変数またはプロシージャを指定してください (ちなみに、このマクロは選択したセルの右隣にあるセルの左から5文字目~10文字目までを、表示させるものです。答えて下さる方には老婆心かもしれません。。。)

みんなの回答

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.3

プロジェクトエクスプローラに表示されているモジュール名に、  Cells とか Mid なんかがあるんじゃないですか? あれば、他のぶつからない名前に変更してください。 (例:modXXXXX とか)

TENSAW
質問者

お礼

ビンゴです。ありがとうございました。

  • hotosys
  • ベストアンサー率67% (97/143)
回答No.2

どこかに Sub mid(a, b, c) ・・・ End Sub とかを作ってませんか? その場合はそんなエラーが起こってmidが反転するはずです。 そうでなければ、エラーの行ではなく反転する文字を教えてください。

TENSAW
質問者

補足

お享受ありがとうございました。 今回は上記のようなSub・・・は作っておりませんでした。 今後ともよろしくお願いいたします。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

Msgboxを入れただけですが Sub mid_ac() Dim i As Integer Dim colNum As Integer i = 2 colNum = ActiveCell.Column MsgBox colNum Do Until Cells(i, 1).Value = "" MsgBox Mid(Cells(i, colNum + 1).Value, 5, 10) Cells(i, colNum).Value = Mid(Cells(i, colNum + 1).Value, 5, 10) i = i + 1 Loop End Sub にしてみて、メッセージ表示はどうなりますか? 私の好みとしては ActiveCell.Column は不安定でやりたくない。思わぬセルがアクチブになっていて、つい実行してしまう。 ーー 簡単なデータではエラーは出ないことを確認しました。 データ(やアクチブセル)がたまたま何々の時の問題では?

TENSAW
質問者

お礼

早速のお返事ありがとうございました。