[[20190601111856]] 『消込処理のループ』(ブレンド) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『消込処理のループ』(ブレンド)

消し込み線をマクロで動かしたいと思いマクロを2つ作ったのですが、この2つを合わせてループ処理をしたいと思ったのですがどうやればいいのか分からず止まってしまいました。
申し訳ありませんがループ処理の作り方を教えて貰えないでしょうか?
作成したマクロは以下の2つです。
Sub 消込処理()

    With Selection.Font
    .Strikethrough = True
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
    End With
End Sub
Sub 消込線削除()
    With Selection.Font
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
    End With
End Sub

< 使用 Excel:Excel2016、使用 OS:Windows10 >


.Strikethrough = Not .Strikethrough

で、交互に切り替わります

(マナ) 2019/06/01(土) 11:53


投稿かぶったけどほぼそのまま。

>この2つを合わせてループ処理をしたいと思った

どのようにループ処理したいのでしょうか?
提示されたものを整理すると

 Sub 消込処理() 
   Selection.Font.Strikethrough = True
 End sub

 Sub 消込削除()
   Selection.Font.Strikethrough = False
 End sub

となり、それぞれ【選択した範囲】の文字列全体に【取り消し線】を付ける(解除する)コードになっているようにお見受けしますが・・・

(この二つを単純にループ処理するといわれると、付けたり消したりを何らかの条件を満たすまで繰り返すということになり、意味がないコードが完成しそうな・・・)

(もこな2) 2019/06/01(土) 12:00


 そのコードを使うなら↓でしょうけど、、
Sub sss()
Dim r As Range
For Each r In Selection
    If r.Font.Strikethrough = True Then
        消込線削除
    Else
        消込処理
    End If
Next
End Sub

 これ↓でもいいと
Sub xxx()
Dim r As Range
For Each r In Selection
    With r.Font
        If .Strikethrough = True Then
            .Strikethrough = False
        Else
           .Strikethrough = True
        End If
    End With
Next
End Sub

 でも、これで↓いいですよと、、、
Sub vvv()
Dim r As Range
For Each r In Selection
    r.Font.Strikethrough = Not r.Font.Strikethrough
Next
End Sub

 勉強になるねぇ(^^;
(SoulMan) 2019/06/01(土) 12:03

マナさんのコメントを元にコードを作成して繰り返し処理が出来ました。

リストを作っていて処理が完了したものを消し込みしたかったのでこの処理で十分な内容でした。
説明足らずで申し訳ありませんでした。
(ブレンド) 2019/06/01(土) 12:07


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.