質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

2回答

3841閲覧

選択範囲のセル内の文字列の一部を赤色に変更するマクロ

mokahanakabu

総合スコア1

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2020/10/23 04:31

マクロ初心者です

例えば、下記1行ずつは、それぞれ1つのセルに入っています
11・11
6・ 4
12・ 4
0・12

この表の「・」の後ろを赤文字にしたいです
初心者なので、マクロの記録から拾いながらしようと思ったのですが、うまくできません

作ったのはこちらです

Sub 赤文字へ変更()
'
' 赤文字へ変更 Macro
'

'
Range("B2").Select
With ActiveCell.Characters(Start:=4, Length:=2).Font
.Color = -16776961
End With
Range("B3").Select
End Sub

上記はを1行目しか変わらなくて、ネットから色々見て下記を作ってみたところできませんでした
Dim i As Long
For Each r In Selection
With ActiveCell.Characters(Start:=4, Length:=2).Font
.Color = -16776961
End With
End Sub

発生している問題・エラーメッセージ

エラーメッセージ
コンパイルエラー
function または変数が必要です。

すみませんが、何が足りないかを教えていただけますでしょうか?
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

ExcelVBA

1Option Explicit 2 3Sub test() 4 Dim i As Long 5 Dim r As Range 6 7 For Each r In Selection 8 i = InStr(r.Value, "・") 9 10 If i > 0 Then 11 r.Characters(Start:=i + 1, Length:=2).Font.Color = vbRed 12 End If 13 Next 14End Sub

こちらは、これで
コンパイルエラーは出ません。
動作確認はしていません。

function または変数が必要です。

のエラーは、関数を呼び出そうとしているが、
そのような関数はないというときに出るエラーのようなので、
Selectionが関数ではないかと認識されているようです。
なんでそんなことになるか今一つわかりません。

まっさらなモジュールに、コピペでなく、
手入力で書いてみたらどうなりますか?

ちなみに、

ツール→オプション→全般

で、エラートラップとコンパイルの設定はどのようになってますでしょうか?

投稿2020/10/26 05:03

mattuwan

総合スコア2163

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mokahanakabu

2020/10/26 05:34

貼り付けて実行したら、うまく実行できました ありがとうございました 大変助かりました。
guest

0

vba

1Dim i As Long 2Dim r As Range 3 4For Each r In Selection 5 With r.Characters(Start:=4, Length:=2).Font 6 .Color = -16776961 7 End With 8Next r

修正点は下記です。

rを宣言する
With内でrを使う
Forに対するNextを書く

投稿2020/10/23 04:47

meg_

総合スコア10760

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mokahanakabu

2020/10/23 05:00

ご回答いただきありがとうございます。 そのまま貼り付けて、マクロ実行をしたのですが、 最初のエラーメッセージと同様に コンパイルエラー function または変数が必要です と出てしまいます どうしたらよいでしょうか?
meg_

2020/10/23 05:35

回答のコードは実行部分のコードですので、Sub()の中に書いて実行してください。 例えば、Sub test() と End Sub で回答のコードを挟んでください。
mokahanakabu

2020/10/23 06:08

ありがとうございます 実行してみます
mokahanakabu

2020/10/23 06:14

たびたびすみません 下記を貼り付けて実行してみましたがまただめでした なにがいけないかわかれば教えていただけませんでしょうか? Sub 赤文字へ変更() ' ' 赤文字へ変更 Macro ' ' Sub test() Dim i As Long Dim r As Range For Each r In Selection With r.Characters(Start:=4, Length:=2).Font .Color = -16776961 End With Next r End Sub
mokahanakabu

2020/10/23 06:20

たびたびすみません 下記の通り、貼り付けてみました 途中で止まってしまって、Selectionのところが青色になっています。 エラーコメントは元と一緒です なにか間違っていますでしょうか? Sub test() Dim i As Long Dim r As Range For Each r In Selection With r.Characters(Start:=4, Length:=2).Font .Color = -16776961 End With Next r End Sub
meg_

2020/10/23 06:36

上記コードでエラーは出ませんでした。 新しいエクセルブックで試してもエラーが出ますでしょうか?
mokahanakabu

2020/10/23 07:43 編集

新しいエクセルデータを開けて実行してみました(エクセルは2013) コンパイルエラー function または変数が必要です とエラーで終わってしまいます 表は下記に罫線も入っている状態です 最初のセルは、B2にあります 上から下まで選択して、マクロを実行しました 11・11 6・ 4 12・ 4 0・12 1・ 2 0・ 3 6・ 4 6・ 4 6・ 4 6・ 4 6・ 4 6・ 4 6・ 4 6・ 4
meg_

2020/10/23 08:42

マクロ画面の「デバッグ」-「VBAProjectのコンパイル」をクリックして、エラーは出ますか? 出なければ、まずは一つのセルを選択してマクロを実行してみてください。
mokahanakabu

2020/10/26 01:25

返信がおそくなりすみません ご指示どおりにクリックしたのですが、エラーが出て同じようなコメントが出てしまします
meg_

2020/10/26 03:42

コンパイルエラーが出るのは文法上のエラーがあるのだと思います。 状況確認のためにエラーが出ている画面を質問にアップしてもらえませんか?(マクロ作成画面(VBE全体が映るように))
mokahanakabu

2020/10/26 04:08

わかりました 再度質問にあげてみます よろしくお願いします
mokahanakabu

2020/10/26 05:36

meg_様、勉強になりました 親身なご対応ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問