Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7896 / 13645 ツリー ←次へ | 前へ→

【36209】取り消し線以外の文字の取り出し 勉強中 06/3/24(金) 13:32 質問[未読]
【36210】Re:取り消し線以外の文字の取り出し Kein 06/3/24(金) 13:50 発言[未読]
【36211】Re:取り消し線以外の文字の取り出し Blue 06/3/24(金) 13:54 発言[未読]
【36212】Re:取り消し線以外の文字の取り出し Jaka 06/3/24(金) 13:59 回答[未読]
【36213】Re:取り消し線以外の文字の取り出し 勉強中 06/3/24(金) 15:07 お礼[未読]

【36209】取り消し線以外の文字の取り出し
質問  勉強中  - 06/3/24(金) 13:32 -

引用なし
パスワード
   いつもお世話になっております。
知識が浅い為、壁にぶつかっております。
どなた様かご教授くださると助かります。

質問の用件はといいますと、
例えばBook1のA4の値を変数に入れたいと考えているのですが
仮にA4の値が下記のようであり、且つ「TEST」に取り消し線が引いてあったとします(値は今回は「テスト TEST」ですがBookによって値は不定です。)
__________
テスト
TEST
__________

上記のような場合に取り消し線のない値(テスト)のみを変数の中に入れるには
どのようにしたらいいのでしょうか。

どなた様かお教え願えませんでしょうか。
宜しくお願いします。

【36210】Re:取り消し線以外の文字の取り出し
発言  Kein  - 06/3/24(金) 13:50 -

引用なし
パスワード
   取り消し線というのは「セル」の書式ですから、改行等によって "ある文字位置から
ある文字位置まで" に限定して引くことはできないはずですよ。あくまでセル単位
ということで。

【36211】Re:取り消し線以外の文字の取り出し
発言  Blue  - 06/3/24(金) 13:54 -

引用なし
パスワード
   一例)
A1のセルに ABCEFGHIJ という文字列があり、 EFG に取り消し線がある場合

Sub test()
  Dim i As Long
  Dim s As String
  
  With Range("A1")
    For i = 1 To .Characters.Count
      If Not .Characters(i, 1).Font.Strikethrough Then
        s = s & .Characters(i, 1).Text
      End If
    Next
  End With
  MsgBox s
End Sub

【36212】Re:取り消し線以外の文字の取り出し
回答  Jaka  - 06/3/24(金) 13:59 -

引用なし
パスワード
   Sub Macro1()
Dim st as string
st = empty
For i = 1 To Len(Range("A1").Value)
  With Range("A1").Characters(Start:=i, Length:=1).Font
    If .Strikethrough = False Then
      st = st & Mid(Range("A1").Value, i, 1)
    End If
  End With
Next
MsgBox Trim(st)
End Sub

【36213】Re:取り消し線以外の文字の取り出し
お礼  勉強中  - 06/3/24(金) 15:07 -

引用なし
パスワード
   Keinさん
Blueさん
Jakaさん

ご回答ありがとうございました。
助けていただき感謝しています。

BlueさんとJakaさんがご教授くださった方法でやってみたところ
両方とも期待していた通りの処理をしてくれました。

この度は本当にありがとうございました。
今回、教えて頂いたことを参考にして、更に勉強いたします。

7896 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free