Excel VBA質問箱 IV

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

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


17925 / 76738 ←次へ | 前へ→

【64258】Re:wordからの貼付について
質問  らいち  - 10/1/28(木) 16:24 -

引用なし
パスワード
   nさんへ

いつも有難う御座います。
ASC(TRIM(CLEAN()))の方はうまくいきましたが、
もう一方の貼り付け前の状態に戻る方がうまくいきません。
下記コードを入れても、無反応でした。
恐らくコード記載方法が違うと思いますが、
正直、よく分かりません。
お手数をお掛けしますが、ご指導の程、お願い致します。
D5:D3000(B列でなくD列でした)に薄く色付けしてます。

Private Sub Worksheet1_Change(ByVal Target As Range)
  Dim sng As Range
  Dim s  As Range
  Set sng = Intersect(Target, Rows("5:3000"), _
            Range("D:D"))
  If Not sng Is Nothing Then
    Application.EnableEvents = False
    ActiveSheet.Unprotect
    For Each s In sng
      If s.Interior.ColorIndex = xlNone Then
        Exit Sub
      Else
       If MsgBox("戻す?", vbYesNo) = vbYes Then
        Application.Undo
       End If
    Next
    ActiveSheet.Protect
    Application.EnableEvents = True
    Set sng = Nothing
  End If
End Sub

▼n さん:
>>メッセージを表示(再試行)して、貼り付け前の状態に戻る...
>
>If MsgBox("戻す?", vbYesNo) = vbYes Then
>  Application.Undo
>End If
>みたいな感じですが、何をトリガーにして実行するか、ですね。
>B5:B3000に薄く色をつけておけば
>If ...Interior.ColorIndex = xlNone Then
>で判定するWorksheet_Changeイベントが使えそうな気がしますが。
>
>>ASC(TRIM(CLEAN()))で
>そのまま
>With Application
>  Range("B5:B10").Value = .Asc(.Trim(.Clean(Range("B5:B10"))))
>End With
>などで。
>B5以下のデータがある範囲に限定すると良いでしょう。
>
>もしくはWorksheet_Changeイベントを使って、入力時にチェックするのでも良いかと。

0 hits

【64227】wordからの貼付について らいち 10/1/27(水) 9:43 質問
【64232】Re:wordからの貼付について らいち 10/1/27(水) 11:12 質問
【64254】Re:wordからの貼付について n 10/1/28(木) 13:03 発言
【64258】Re:wordからの貼付について らいち 10/1/28(木) 16:24 質問
【64262】Re:wordからの貼付について n 10/1/28(木) 23:10 発言
【64265】Re:wordからの貼付について n 10/1/28(木) 23:38 発言
【64271】Re:wordからの貼付について らいち 10/1/29(金) 13:17 お礼

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