• ベストアンサー

VBAでセルから書式情報を取得する方法

こんにちは。 VBA初心者ですので、おかしな質問でしたら申し訳ありません。 入力済みのリストを参照して、削除線の引いてあるセルは飛ばして データを読んでいこうと思ったのですが、任意のセルが削除線が引いてある/引いていないの情報取得方法が分かりません。 色々調べてみて、色関係なら見つけたのですが、削除線のは探せませんでした。逆に削除線を設定する方法ならあったのですが・・・ どなたか、お力を貸していただけませんでしょうか? 御願い致します。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

こんなとこへ質問する前に、なぜマクロの記録をとらないのか。 取り消し線を設定し、削除する操作をマクロの記録で採る。 Range("A1").Select With Selection.Font  ・・・・   .Strikethrough = True End With With Selection.Font ・・ .Strikethrough = False End With です。 だから >任意のセルが削除線が引いてある/引いていないの情報取得方法が分かりません。 は If Range(”A1").Font.Strikethrough = True Then で取り消し線があるかどうかわがる。

yuzumiya
質問者

お礼

回答ありがとうございました。 マクロの記録・・・ですか・・・。 そう言う機能があるのですね? ありがとうございます。今後の勉強にもなります。 実際調べてやってみました。 なるほど、でてきました♪ スキルアップに繋がるとても参考になるご意見ありがとうございました。

その他の回答 (2)

  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.2

If Range("A1").Font.Strikethrough = True Then ’引いてあるときの処理 Else ’引いていないときの処理 End If

yuzumiya
質問者

お礼

回答ありがとうございました。 とても分かり易く、簡潔に書いていただいて嬉しいです。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

削除線って取り消し線のことですよね? 設定方法がわかるなら逆をやればいいだけではないでしょうか? 以下はA1からA20のデータで取り消し線がないデータだけをB列に転記する例です。 Sub test01() With ActiveSheet For i = 1 To 20 If .Cells(i, "A").Font.Strikethrough = False Then n = n + 1 .Cells(n, "B") = .Cells(i, "A") End If Next End With End Sub

yuzumiya
質問者

お礼

早速の回答ありがとうございました。 お礼が遅くなってしまい申し訳ありません。 削除線=取消線で合ってます。 なるほど。 よく分かりました。ありがとうございました。

関連するQ&A