Excel VBA質問箱 IV

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

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


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

【65633】選択範囲(*ある条件のセル)全てのセルに値やコメントを挿入 初心者 10/6/17(木) 12:25 質問[未読]
【65634】Re:選択範囲(*ある条件のセル)全てのセルに... ひつまぶし 10/6/17(木) 13:14 発言[未読]
【65635】Re:選択範囲(*ある条件のセル)全てのセルに... 初心者 10/6/17(木) 13:53 お礼[未読]

【65633】選択範囲(*ある条件のセル)全てのセルに...
質問  初心者  - 10/6/17(木) 12:25 -

引用なし
パスワード
   なかなか旨く動いてくれずに試行錯誤しています。
コードも載せたいと思いますので、ご教授願います。

▼対象
・選択範囲(*ある条件のセルのみ)全てのセル
  *ある条件:セルの書式パターンが網掛け

▼希望動作
・ユーザーフォームのテキストボックスに入力した内容を一部、コメントとしてセルに挿入する。
・ユーザーフォームのテキストボックスに入力した内容を一部、文字列としてセルに挿入する。


▽作ったマクロ
==========================================================
Private Sub CommandButton1_Click()

  If Selection.Interior.Pattern = xlGray8 Then
    Selection.ClearComments              'コメントのクリア
    Selection.AddComment               'コメントの挿入
    Selection.Comment.Visible = False       'コメントの非表示
    Selection.Comment.Text Text:=UserForm3.TextBox1.Text & vbCrLf & UserForm3.TextBox2.Text & vbCrLf & UserForm3.TextBox3.Text
    Selection = UserForm3.TextBox4.Value
   Else
  End If

End Sub
==========================================================

【65634】Re:選択範囲(*ある条件のセル)全てのセル...
発言  ひつまぶし  - 10/6/17(木) 13:14 -

引用なし
パスワード
   Selectionが複数範囲のセル群を参照している場合の対応方法ですね?

簡単な方法としては、Selectionから一つ一つのセルを取り出して、
各々に対して判定、セットしてやるように変更すればいいでしょう。
各々のセルを見ていくようにするのはFor Eachループで行います。

提示のコードをちょこっと変更するとすれば、
Private Sub CommandButton1_Click()
  Dim s1 As String, s2 As Variant
  Dim c As Range
  
  s1 = Me.TextBox1.Text & vbCrLf & _
     Me.TextBox2.Text & vbCrLf & _
     Me.TextBox3.Text
  s2 = Me.TextBox4.Value

  For Each c In Selection
    With c
      If .Interior.Pattern = xlGray8 Then
        .ClearComments          'コメントのクリア
        .AddComment(s1).Visible = False  'コメントの非表示
        .Value = s2
      End If
    End With
  Next

End Sub
と言った感じでしょうか。


注)
このコードは、CommandButton1やTextBox1〜4が配置されている
UserForm3のフォームモジュールのコードであると解釈しました。

【65635】Re:選択範囲(*ある条件のセル)全てのセル...
お礼  初心者  - 10/6/17(木) 13:53 -

引用なし
パスワード
   ▼ひつまぶし さん:
>Selectionが複数範囲のセル群を参照している場合の対応方法ですね?
はい、ご推察の通りです。

For Eachループで選択領域に挿入していく方法、とても勉強になりました!
アドバイスの点を加えて修正したら、希望通りに実行できました。
ありがとうございました!

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