
VbaでA列のみ入力規則でひらがなにしたいのですが、
Sub test()
With Columns(“a”).Validation
.Delete
.IMEMode = xlIMEModeHiragana
End With
End Sub
にすると、実行時エラー1004になります。
.Delete
.Add Type:=xlValidateInputOnly
.IMEMode = xlIMEModeHiragana
にすると、問題ないです。
.Add Type:=xlValidateInputOnly
がどういう意味なのか知りたいのですが
Validationのヘルプを見ても、
Add Typeに関する記載がありません。
なぜ、Add Typeがないとエラーになるのでしょうか?
No.2ベストアンサー
- 回答日時:
すみません。
#1です。編集ミスに気が付きました。誤)
' ' ==============================
以上の説明から、
入力規則の設定に関しては
(Validation.)Add メソッド
(Validation.)Delete メソッド
各プロパティ設定
の順番に処理していく必要があるります。
' ' ==============================
正)
' ' ==============================
以上の説明から、
入力規則の設定に関しては
(Validation.)Delete メソッド
(Validation.)Add メソッド
各プロパティ設定
の順番に処理していく必要があるります。
' ' ==============================
以上、訂正をお願いします。
失礼しました。
No.1
- 回答日時:
こんにちは。
さっそく説明です。
> なぜ、Add Typeがないとエラーになるのでしょうか?
(Validation.)Add メソッド
指定された範囲に入力規則を追加します。
(Validation.)Delete メソッド
指定された範囲のオブジェクト(入力規則)を削除します。
' ' ==============================
' ご提示のコード
' # エラーソース
' ' ==============================
Sub test()
With Columns("a").Validation
' 入力規則(Validationオブジェクト)を削除します
.Delete
' 削除したオブジェクトのプロパティ設定は出来ません
' プロパティ設定をするべきオブジェクトが見つからないので
' エラーになります。
.IMEMode = xlIMEModeHiragana
End With
End Sub
' ' ==============================
' A列に入力規則を(入力モードのみ設定し)追加します
' 日本語入力(IME)の設定をひらがなにします
' # 正しいやり方。
' ' ==============================
Sub Re8091146a()
With Columns("a").Validation
' 入力規則(Validationオブジェクト)を削除します
' 入力規則は二重に設定することはできません
' Delete メソッドは入力規則が見つからなくてもエラーになりません
' Add する為には一旦、Delete メソッドを実行する必要があります
.Delete
' A列に入力規則を(入力モードのみ)追加します
.Add Type:=xlValidateInputOnly
' 日本語入力(IME)の設定をひらがなにします。
.IMEMode = xlIMEModeHiragana
End With
End Sub
' ' ==============================
' A列に既存の入力規則(入力モードのみ設定済)に対して
' 日本語入力(IME)の設定をひらがなに変更します。
' # A列すべてに入力規則設定済であることが"確実"な場合のみ
' ' ==============================
Sub Re8091146a()
With Columns("a").Validation
' 日本語入力(IME)の設定をひらがなにします
' A列に入力規則がない場合
' A列に入力規則が設定されていないセルが含まれる場合
' エラーになります。
.IMEMode = xlIMEModeHiragana
End With
End Sub
' ' ==============================
以上の説明から、
入力規則の設定に関しては
(Validation.)Add メソッド
(Validation.)Delete メソッド
各プロパティ設定
の順番に処理していく必要があるります。
' ' ==============================
> Add Type:=xlValidateInputOnly
> がどういう意味なのか知りたいのですが
> Validationのヘルプを見ても、
> Add Typeに関する記載がありません。
まず、ヘリプから引用。
' ' ==以下引用========================
Validation.Add メソッド
指定された範囲に入力規則を追加します。
構文
式.Add(Type, AlertStyle, Operator, Formula1, Formula2)
式 Validation オブジェクトを表す変数です。
パラメーター
名前 必須/オプション データ型 説明
Type 必須 XlDVType 入力規則の種類を指定します。
AlertStyle オプション バリアント型 (Variant) 入力規則でのエラーのスタイルを指定します。使用できる定数は、XlDVAlertStyle クラスの xlValidAlertInformation、xlValidAlertStop、xlValidAlertWarning のいずれかです。
Operator オプション バリアント型 (Variant) データ入力規則の演算子を指定します。使用できる定数は、XlFormatConditionOperator クラスの xlBetween、xlEqual、xlGreater、xlGreaterEqual、xlLess、xlLessEqual、xlNotBetween、xlNotEqual のいずれかです。
Formula1 オプション バリアント型 (Variant) データ入力規則での条件式の最初の部分を指定します。
Formula2 オプション バリアント型 (Variant) データ入力規則での条件式の 2 番目の部分を指定します。引数 Operator が xlBetween または xlNotBetween 以外の場合、この引数は無視されます。
備考
Add メソッドに必要な引数は、入力規則の種類によって異なります。入力規則の種類を表す定数と必要な引数は次のとおりです。
入力規則の種類 引数
xlValidateCustom 引数 Formula1 を必ず指定します。引数 Formula2 は無視されます。引数 Formula1 には、データ入力が有効な場合は True に評価され、データ入力が無効な場合は False に評価される式を指定する必要があります。
xlInputOnly AlertStyle、Formula1、または Formula2 を使用します。
xlValidateList 引数 Formula1 を必ず指定します。引数 Formula2 は無視されます。引数 Formula1 には、コンマで区切った値の一覧またはこの一覧へのシート参照を指定する必要があります。
xlValidateWholeNumber、xlValidateDate、xlValidateDecimal、xlValidateTextLength、または xlValidateTime 引数 Formula1 と引数 Formula2 のどちらかを指定する必要があります。両方を指定することもできます。
' ' ==以上引用========================
確かに ↑ 解り難いですね。
言葉で説明しても混乱すると思うので
Excelメニューとの対応で確認してみて下さい。
# 以下、私がまとめたもの。
' ' ==============================
Validation.Add メソッドの(名前付き)引数Type
に設定可能な値[Excel.XlDVType]は以下8種
[データの入力規則]ダイアログ
+「設定]タブ
++【入力値の種類】
【整数】
xlValidateWholeNumber
【小数点数】
xlValidateDecimal
【リスト】
xlValidateList
【日付】
xlValidateDate
【時刻】
xlValidateTime
【文字列(長さ指定)】
xlValidateTextLength
【ユーザー設定】
xlValidateCustom
[データの入力規則]ダイアログ
+「日本語入力]タブ
++【日本語入力】
xlValidateInputOnly
' ' ==============================
日本語入力以外 の 7種類の規則 を設定しない場合
つまり
日本語入力モード のみ 設定する場合
は、
.Add Type:=xlValidateInputOnly
という覚え方でいいと思います。
以上です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
autocad 数値が表示されなくな...
-
EXCEL VBAの入力規則で小数点桁...
-
Excelで日報を自動で作成したい...
-
エクセルのリストについて
-
エクセルVB ポップアップウィ...
-
マクロ 入力規則は残し文字の...
-
エクセル 日付超過でポップアッ...
-
弥生会計05、「摘要」入力について
-
VBAの日付チェックでオーバーフ...
-
エクセルの質問です。 行数の最...
-
ドロップダウンリストを2列で...
-
特殊漢字「はし」(橋のつくり...
-
バッククォートの入力方法
-
ドロップダウンリスト 自動表...
-
エクセルで入力規則(リスト)...
-
筆ぐるめでの外字入力
-
excelで第二金曜日を…
-
アクセス2000 クエリ抽出でBet...
-
バーコードリーダーを使ってフ...
-
確定申告の医療費控除について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのリストについて
-
ドロップダウンリスト 自動表...
-
Excelについて
-
autocad 数値が表示されなくな...
-
エクセルVB ポップアップウィ...
-
VBAの日付チェックでオーバーフ...
-
excelのInputBoxで日本語入力OF...
-
マクロ 入力規則は残し文字の...
-
ドロップダウンリストを2列で...
-
エクセル 日付超過でポップアッ...
-
エクセルで半角カナや特殊文字...
-
小数点以下の入力規則
-
Googleドキュメントで数式を書...
-
アクセス2000 クエリ抽出でBet...
-
EXCEL VBAの入力規則で小数点桁...
-
【スプレッドシート】時間入力...
-
エクセルのマクロの使い方
-
pdfの文字入力で一文字ずつしか...
-
弥生会計05、「摘要」入力について
-
求人情報で「SAP入力可能な方」...
おすすめ情報