
エクセル2002のVBAで太文字を検索したいのですが、
<状況>
B列にチェックしたい文字が入力されています
<やりたいこと>
B列に入力されている文字の中から、太文字のみを抜き出して、
太字の見つかった行のG列に太文字のみを抜き出して複写したい
<自作マクロの現状>
セル全体の太文字検索は下記のマクロ「太字検索チェック1」で完成しましたが、
セルに記載してある文字の中で「一部は普通文字、のこり一部は太文字」と混在
しているセルの中身から太文字部分のみを別のセルに抜き出したいのですが、
そのマクロを「太字検索チェック2」のように書きました。
しかし「太字検索チェック2」の「 If dat.Font.Bold = True Then」の部分で
「型が違う・・・」のエラーで先に進みません。
どなたか、セルの中身の太文字のみを抜き出すマクロを教えてください
よろしくお願いします
Sub 太字検索チェック1()
i = 3
Worksheets("テスト").Activate
For Each myRng In Range("B:B")
セル = "b" & i
If Range(セル).Font.Bold = True Then
Cells(i, 7) = Cells(i, 2) ’太字のCells(i, 2)を Cells(i, 7) にコピー
End If
i = i + 1
If i = 1703 Then ’1703番地で終了
Exit For
End If
Next
End Sub
Sub 太字検索チェック2()
i = 3
Worksheets("テスト").Activate
For Each myRng In Range("B:B")
内容 = Cells(i, 2)
文字数 = Len(内容)
For p = 1 To 文字数
dat = Mid(内容, p, 1)
X=8+P
If dat.Font.Bold = True Then ’1文字づつ太字を検索
Cells(i, X) = dat ’太字なら→Cells(i, X) にコピー
End If
Next
i = i + 1
If i = 1703 Then
Exit For
End If
Next
End Sub
No.2ベストアンサー
- 回答日時:
For P = 1 To 文字数
X = 8 + P
If Cells(i, 2).Characters(P, 1).Font.Bold = True Then
Cells(i, X) = Cells(i, 2).Characters(P, 1).Text
End If
Next
に変更してください。
No.1
- 回答日時:
変数の宣言部分が無いようですね。
Option Explicitを宣言する習慣付けしたほうが良いですよ。
問題が生じるのは、
> dat = Mid(内容, p, 1)
と代入した変数 dat に Font がぶら下がって無いから。
過去問の「Excel文字列中の太字(Bold)部分のみ文字色を一括して変換する方法」が
参考になると思います。
参考URL:http://oshiete.goo.ne.jp/qa/2965758.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) excel VBA if文について 3 2022/03/27 17:42
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
i=cells(Rows.Count, 1)とi=cel...
-
ExcelVBAを使って、値...
-
【Excel】指定したセルの名前で...
-
Excelで指定した日付から過去の...
-
Application.Matchで特定行の検索
-
VBA実行後に元のセルに戻りたい
-
特定のセルが空白だったら、そ...
-
VBAでセル同士を比較して色付け
-
TODAY()で設定したセルの日付...
-
特定の文字を条件に行挿入とそ...
-
エクセルマクロでアニメを作る...
-
EXCELのVBA-フィルタ抽出後の...
-
セルに抜けた番号の代わりに空...
-
エクセルVBAでコピーして順...
-
【VBA】シート上の複数のチェッ...
-
Excel VBAで、 ヘッダーへのセ...
-
【Excel VBA】セルの色によって...
-
エクセルvbaで、別シートの最下...
-
VBA ユーザーフォーム ボタンク...
-
EXCELで変数をペーストしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
エクセルvbaで、別シートの最下...
-
特定のセルが空白だったら、そ...
-
VBA実行後に元のセルに戻りたい
-
【Excel VBA】指定行以降をクリ...
-
任意フォルダから画像をすべて...
-
【Excel】指定したセルの名前で...
-
VBAでセルをクリックする回...
-
【VBA】シート上の複数のチェッ...
-
EXCELのVBA-フィルタ抽出後の...
-
Excelのプルダウンで2列分の情...
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
”戻り値”が変化したときに、マ...
-
ExcelのVBAで数字と文字列をマ...
-
VBA ユーザーフォーム ボタンク...
-
Excel VBA マクロ ある列の最終...
-
Excel VBA、 別ブックの最終行...
おすすめ情報