Excel VBA質問箱 IV

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

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


69 / 13329 ツリー ←次へ | 前へ→

【80680】ユーザー関数からセルの背景色の変更 いびき 19/4/3(水) 17:54 質問[未読]

【80691】Re:ユーザー関数からセルの背景色の変更 よろずや 19/4/10(水) 16:21 回答[未読]

【80691】Re:ユーザー関数からセルの背景色の変更
回答  よろずや  - 19/4/10(水) 16:21 -

引用なし
パスワード
   ' ThisWorkbookモジュール
Option Explicit

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
  Call test2(Sh)
End Sub

' 標準モジュール
Option Explicit
Dim Dic1 As Object ' Scripting.Dictionary

Function InteriorColor(Value)
  InteriorColor = Value
  test1 Array("Interior.Color", RGB(0, 255, 0))
End Function

Sub test1(arg)
  If Dic1 Is Nothing Then
    Set Dic1 = CreateObject("Scripting.Dictionary")
  End If
  If Dic1.Exists(Application.ThisCell.Address(External:=True)) Then
    Dic1.Item(Application.ThisCell.Address(External:=True)) = arg
  Else
    Dic1.Add Application.ThisCell.Address(External:=True), arg
  End If
End Sub

Sub test2(Sh) 'マクロ一覧に出さないために引数を付加
Dim Address As Variant
  For Each Address In Dic1.Keys
    Select Case Dic1.Item(Address)(0)
      Case "Interior.Color"
        Range(Address).Interior.Color = Dic1.Item(Address)(1)
    End Select
    Dic1.Remove Address
  Next Address
End Sub

これで、当該の関数を実行しているセルの背景色を変更できます。

いびきかいてないで返事してよね。

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