重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【終了しました】教えて!goo新規会員登録

よろしくお願いします。いつもgooの皆さんに大変お世話になっています
エクセルは2013です

「変数が定義されていません」のエラー対策を教えてください 

下記のマクロは元々 Worksheet_Change(ByVal Target As Range) にあったのですが
マクロを追記していたら、Worksheet_Change(ByVal Target As Range) 内の行数が増えて
しまったので、すっきりさせるために
Worksheet_Change(ByVal Target As Range) 内に Call iro_size と書きました
ついでに、fcr,fsr,FR,LRもグローバル変数にしました(モジュール1に以下のように書きました)

Public Const fcr As Long = 30
Public Const fsr As Long = 31
Public Const FR As Long = 43
Public Const LR As Long = 73
他のグローバル変数は使えているので、上の宣言で間違いはなさそうです

Sub iro_size() '標準モジュールのモジュール2に書きました 
'実際はO、T、AC:AFを除いてAH列まで、延々と全く同じことが書いてあります
'B列 
 If Not Intersect(Target, Range("B" & fcr)) Is Nothing Then
  'Font Color 入力規則 2-56 以下同じ 1は背景色と同じ黒だから拒否
  Range("B" & FR & ":" & "B" & LR).Font.ColorIndex = Range("B" & fcr)
 End If
 If Not Intersect(Target, Range("B" & fsr)) Is Nothing Then
  'Font Size 入力規則 10-40 以下同じ
  Range("B" & FR & ":" & "B" & LR).Font.Size = Range("B" & fsr)
 End If
End sub

これで実行させるとTargetが水色になって、「変数が定義されていません」のエラーになります

そこで質問ですが、Targetはどう変数宣言したら良いでしょうか

A 回答 (1件)

Sub iro_size()を


Sub iro_size(ByVal Target As Range) に変え、
Call iro_sizeを
Call iro_size(Target) に変えてください。
    • good
    • 1
この回答へのお礼

早朝から早速教えていただきまして感謝します
お陰様でうまくいきました

変数宣言だから Target=と書くのかと思ってました
エラーが出るといつも頭が真っ白になります

私の実力はこの程度です
勉強になりました
また一歩進歩できました
早朝からありがとうございました

お礼日時:2016/12/16 09:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!