• ベストアンサー

エクセルでセル中の学名の一部を斜体にしたい

エクセル2007でA列に学名だけの入ったデータが数百行あるのですが、その列の属名と種小名の部分(下の例でいうとPierisとrapaeを斜体(イタリック)にマクロなどで一括でしたいのです。簡単に言うと2つ目の半角空白までということですが、どなたかご教授お願いしたいです。よろしくお願いします。 Pieris rapae (Linnaeus, 1758) Oryzias latipes (TEMMINCK and SCHLEGEL, 1846) ・ ・ ・

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

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 みたいな具合に。

reimy1
質問者

お礼

ありがとうございました 正しくこれです。 Characters関数がミソみたいですね。 勉強してみます。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 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

reimy1
質問者

お礼

ありがとうございました。 A列のデータが正しく斜体に出来ました。 改良すればB列からもできそうですね。 助かりました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 斜体は範囲は、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

reimy1
質問者

お礼

ありがとうございました。 括弧の所まで正しく斜体にできました。 質問の仕方が悪かったですが、学名には括弧のつかないものも ありますので、全ては対応出来ませんが、参考になりました。

関連するQ&A