
Excelの書式の設定についての質問なのですが….
Excelは簡単な関数が組める程度のレベルで,マクロは全くの初心者です.
1表のセル中の一部の文字(赤文字部分)を斜体にし,2表のようにしたいのです.
規則としては,『 』部分を除いた文頭から2単語と,"var."の後の1単語が斜体になるというところでしょうか.
"var."のない文も,あります.
『 』中のアルファベットは,様々な組み合わせがあります.
現在,赤文字になっている箇所は,目立たせるために赤にしたもので,元データは黒文字のみです.
もし,上記の条件が難しいようであれば,『 』部分を除いた文頭から2単語だけでも斜体にできると助かります.
データ数が大量のため手作業では厳しい状況です.
マクロに全く精通しておらず,果たしてマクロで作成できるものなのかどうかも判らないのですが,どうかご教授よろしくお願い致します.

No.5ベストアンサー
- 回答日時:
>B2~M2セルまで関数を入れ、コードを入力し、マクロを実行してみました。
←この方法でよいでしょうか?マクロは一から作れるほど詳しくないので、そのように作っています。
>・全てに共通……『 』の次の英単語の1文字目が斜体にならない
数式で解説しているのに、なぜ、そのようになるかを考えてほしいです。
数式を修正することで対応可能と思われます
>・セル中で改行されているもの
セル内改行は見落としていました。
セル内改行の有無を調べる必要がありそうです。
方法は「var.」と同様ですが、セル内改行がいくつもある場合、
当方のレベルのマクロでは対応できません。
>・セル中に改行のないもの……全てが斜体なっている
少なくとも当方はセル内改行を入れない状態で、正常に働きました。
>マクロ初心者ですので、私の操作方法に問題があるかもしれません。
操作方法に問題はないはずです。
#1 ekayimさんの回答の操作を「マクロの記録」で記録し
不要なものは削除、および、繰り返し処理を追加、「var.」は条件分岐として追加してます。
英単語が分かれば、解読も容易です。
再度のご投稿ありがとうございます。
ご指摘のとおり、計算式を見直しましたところ、
F2セル 赤開始1 =E2+2 ← =E2+1とし、
G2セル 赤終了1 =FIND(" ",$A2,F2)-1 ← " " が "" となっていたので、そこを修正しましたところ、セル中に改行のないものについては、パーフェクトな結果が得られました。教えを乞う前に、自分でちゃんと計算式を理解すべきでした。申し訳ありません。
また、セル中に改行のあるものついても、最初と最後の対象単語が斜体にならないという、完成形に近いものですので、あとは手動でなんとかなりそうです。
大変勉強になりました。回答者の皆様方に、この場をお借りしてお礼を申し上げます。ありがとうございました。
No.4
- 回答日時:
スマートではありませんが下記でどうでしょうか。
単語間にある半角スペースを区切り文字として利用しています。
対象セル範囲は実際に合わせて書き換えて試してください。
Dim c As Range
Dim txt As String
Dim buf As Variant
Dim s As Long
Dim l As Long
Dim i As Long
Dim n As Long
For Each c In Range("A1:A100")
txt = c.value
buf = Split(txt, " ")
For i = LBound(buf) To UBound(buf)
If InStr(buf(i), "』") > 0 Then
n = i
Else
If i - n <= 2 Then
s = InStr(txt, buf(i))
l = Len(buf(i))
Else
If InStr(buf(i), "var") > 0 Then
s = InStr(txt, buf(i + 1))
l = Len(buf(i + 1))
End If
End If
End If
If s <> 0 And l <> 0 Then
With c.Characters(Start:=s, Length:=l).Font
.FontStyle = "斜体"
End With
s = 0: l = 0
End If
Next
Next
#データをコピペすればテストに使えるような形で提供するようにしてください。
ご回答ありがとうございます。
また、データの提供方法が悪く、ご迷惑をおかけしております。
マクロを実行しましたところ、「コンパイルエラー SabまたはFanctionが定義されいません」というエラーメッセージが出て、セル中一行目一文字目の『 のみが斜体になるという結果となりました。
お恥ずかしいのですが、マクロ初心者のためエラーの解決方法がわかりません。
もし、お時間がおありのようでしたらさらなるご教示をいただきたくお願い申し上げます。
No.3
- 回答日時:
勉強がてら挑戦してみました
といっても、関数中心
B2セル 文字数 =LEN(A2)
C2セル 』除 文字数 =LEN(SUBSTITUTE(A2,"』",""))
D2セル 』数 =B2-C2
E2セル 』の終わり位置 =FIND("♪",SUBSTITUTE(A2,"』","♪",D2))
F2セル 赤開始1 =E2+2
G2セル 赤終了1 =FIND(" ",$A2,F2)-1
H2セル 赤開始2 =G2+2
I2セル 赤終了2 =FIND(" ",$A2&" ",H2)-1
J2セル var.有無判定 =ISNUMBER(FIND("var.",A2))
K2セル var.位置=IF(J2,FIND("var.",A2),"")
L2セル 赤開始3 =IF(K2="","",K2+5)
M2セル 赤終了3 =IF(K2="","",FIND(" ",$A2&" ",L2)-1)
とやってあとはマクロの自動記録+アルファってことで
Sub Macro1()
Dim n As Long
Dim 終了の行 As Long
終了の行 = Cells(Rows.Count, 1).End(xlUp).Row
For n = 2 To 終了の行
With Cells(n, 1)
.Characters(Start:=Cells(n, "F").Value, _
Length:=Cells(n, "G") - Cells(n, "F") + 1) _
.Font.FontStyle = "斜体"
.Characters(Start:=Cells(n, "H").Value, _
Length:=Cells(n, "I") - Cells(n, "H") + 1) _
.Font.FontStyle = "斜体"
If Cells(n, "J").Value Then _
.Characters(Start:=Cells(n, "L").Value, _
Length:=Cells(n, "M") - Cells(n, "L") + 1) _
.Font.FontStyle = "斜体"
End With
Next
End Sub

いつもご回答いただき、ありがとうございます。
B2~M2セルまで関数を入れ、コードを入力し、マクロを実行してみました。←この方法でよいでしょうか?
結果なのですが、『 』部分は斜体になっていないのでOKなのですが、英単語部分が以下のようになってしまいました。
・全てに共通……『 』の次の英単語の1文字目が斜体にならない
・セル中で改行されているもの……1行目の頭の2単語が斜体にならない。var.の後の単語は斜体になっている
・セル中に改行のないもの……全てが斜体なっている
マクロ初心者ですので、私の操作方法に問題があるかもしれません。
もしお時間がおありのようでしたら、ご指摘いただければありがたいです。
No.2
- 回答日時:
質問の画像は文字が小さくぼやけて読みにくい。
使わないでほしいぐらいだ。セルの文字列をテキストで貼り付けてほしい。
ーー
手作業では多数回の操作になり、やる気がしない、時間がかかると言うものは、VBAを使うほかない。
そのVBAの経験がないのに、したいと望んでは、丸投げで、回答者を下請けにつかっていいることになる。
ーー
エクセルでは、VBAでも語(語句)をズバリとらえることさえ難しい。エクセルがワープロ的機能を主目的にしてないためだ。
ワードVBAが判れば、語句の分離は、やや、やりやすいかも。しかし1語目・2語目とかの判別・抽出は簡単でない。
ーー
一案は
A列の各セルで最終行まで繰り返す。
(1)セルの文字列の最初が『』なら、その次の(終わりまでの)部分でInstr関数でスペースをさがし、第1語、第2語の位置と文字数を割り出す。そしてその部分を斜体にする。
「ver」のあとは、Instr関数で「ver」の出現位置を割り出し、Instr関数でその後の最初のスペースを探し、その後の1語の位置と文字数を割り出し、斜体にする。
文字列の一部分の書体を変えるのは
http://www.big.or.jp/~seto/vbaref/vbaref3.htm など
の「 セルの文字列の一部だけフォントを変更する」のコードを参考にする。
ご回答ありがとうございます。
画像の件、見づらくて申し訳ありませんでした。
セル中に改行してある箇所のあることを、テキストの貼付けでは、うまく表現できなかったため、画像を貼付けてしまいました。以後気をつけます。
また、下請け云々のご指摘もおっしゃる通りで、返す言葉もありません。本来ならば、自分の使える機能を使って処理すべきものだと思いますが、限られた時間の中で、作業を終えなければならず、こちらにおすがりした次第です。
ですが、ご教示いただいたInstr関数も使えないレベルでマクロを教えていただこうなんて、やはり問題外ですね。かなり甘えていたようです。ご指摘ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) エクセルで文字の一部を赤から白に変えるマクロを教えて下さい。 2 2022/10/08 23:01
- Excel(エクセル) Excelで校閲をする方法はあるでしょうか(取扱説明書への掲載禁止用語の確認) 3 2022/06/11 22:51
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) Excelに文字データのみを貼り付けたい 8 2023/05/03 15:38
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) 現在のセルの文字列を右隣のセルの名前にするマクロをつくりたい 4 2023/01/12 09:01
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:02
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba テキストボックスとリフト...
-
貼り付けで複数セルに貼り付けたい
-
枠に収まらない文字を非表示に...
-
エクセルで指定したセルのどれ...
-
(Excel)数字記入セルの数値の後...
-
セルをクリック⇒そのセルに入力...
-
エクセル オートフィルタで絞...
-
対象セル内(複数)が埋まった...
-
excelの特定のセルの隣のセル指...
-
EXCEL VBA セルに既に入...
-
数式を残したまま、別のセルに...
-
Excelでのコメント表示位置
-
エクセル セルの中に縦線が入っ...
-
【エクセル】IF関数 Aまたは...
-
EXCELで右詰の数値でセルを(左...
-
EXCELのセルの中の半角カンマの...
-
Excelについての質問です 並べ...
-
Excelで、「特定のセル」に入力...
-
エクセルの一つのセルに複数の...
-
Excelで数式内の文字色を一部だ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
スプレッドシートで複数のプル...
-
excelで日付関数の文字列変換の...
-
エクセルで指定したセルのどれ...
-
貼り付けで複数セルに貼り付けたい
-
枠に収まらない文字を非表示に...
-
セルをクリック⇒そのセルに入力...
-
エクセルの一つのセルに複数の...
-
数式を残したまま、別のセルに...
-
(Excel)数字記入セルの数値の後...
-
Excel 例A(1+9) のように番地の...
-
対象セル内(複数)が埋まった...
-
エクセルの書式設定の表示形式...
-
EXCEL VBA セルに既に入...
-
excelの特定のセルの隣のセル指...
-
エクセルのセルの枠を超えて文...
-
Excelでのコメント表示位置
-
エクセル オートフィルタで絞...
-
Excelで数式内の文字色を一部だ...
おすすめ情報