- ベストアンサー
エクセルでセル中の学名の一部を斜体にしたい
エクセル2007でA列に学名だけの入ったデータが数百行あるのですが、その列の属名と種小名の部分(下の例でいうとPierisとrapaeを斜体(イタリック)にマクロなどで一括でしたいのです。簡単に言うと2つ目の半角空白までということですが、どなたかご教授お願いしたいです。よろしくお願いします。 Pieris rapae (Linnaeus, 1758) Oryzias latipes (TEMMINCK and SCHLEGEL, 1846) ・ ・ ・
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Sub macro1() Dim h As Range For Each h In Range("A:A").SpecialCells(xlCellTypeConstants, xlTextValues) With h .Font.FontStyle = "標準" .Characters(1, InStr(InStr(.Value, " ") + 1, .Value, " ") - 1).Font.FontStyle = "斜体" End With Next End Sub みたいな具合に。
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! A列の1行目からデータがあるとします。 一例です。 Sub test() Dim i, j As Long On Error Resume Next For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row j = WorksheetFunction.Find("@", WorksheetFunction.Substitute(Cells(i, 1), " ", "@", 2)) - 1 Cells(i, 1).Characters(Start:=1, Length:=j).Font.Italic = True Next i End Sub こんな感じではどうでしょうか?m(__)m
お礼
ありがとうございました。 A列のデータが正しく斜体に出来ました。 改良すればB列からもできそうですね。 助かりました。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 斜体は範囲は、1文字目から" ("までとしています。 Sub sample() For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row wk = InStr(Cells(i, "A"), " (") With Cells(i, "A").Characters(Start:=1, Length:=wk).Font .FontStyle = "斜体" End With Next End Sub
お礼
ありがとうございました。 括弧の所まで正しく斜体にできました。 質問の仕方が悪かったですが、学名には括弧のつかないものも ありますので、全ては対応出来ませんが、参考になりました。
お礼
ありがとうございました 正しくこれです。 Characters関数がミソみたいですね。 勉強してみます。