
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA シート上にドロップダウンリストを作り、予め指定値をセットしたいのですが 1 2023/03/25 15:15
- Windows 10 IT初心者です! powershellで以下のようなエラーが出ました オブジェクト参照がオブジェクト 1 2023/05/17 11:30
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- C言語・C++・C# Cのオブジェクトファイルの逆アセンブル 5 2023/05/13 01:51
- Excel(エクセル) エクセルVBAで次の二つを行いたいのですが思うように動きません。どう修正したらよいのでしょうか? 2 2023/04/22 14:55
- Visual Basic(VBA) エクセルVBAで以下のようなコードを書いたらエラーになりました。何処が間違っているの教えて? 1 2023/02/10 18:30
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelについて
-
マクロ 選択範囲と同一の範囲...
-
autocad 数値が表示されなくな...
-
Excelで日報を自動で作成したい...
-
ドロップダウンリスト 自動表...
-
マクロ 入力規則は残し文字の...
-
弥生会計05、「摘要」入力について
-
accessテキストボックスで月日...
-
【スプレッドシート】時間入力...
-
バーコードリーダーを使ってフ...
-
博子の旧字体を入力するには
-
autocadLTで添え字文字
-
ドロップダウンリストを2列で...
-
excelのInputBoxで日本語入力OF...
-
求人情報で「SAP入力可能な方」...
-
EXCEL VBAの入力規則で小数点桁...
-
Net tuneの設定方法
-
ACCESSで日付型のフィールドにY...
-
エクセルVBAのエディターが上書...
-
PCのキーボドで「ヲ」と言う...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ドロップダウンリスト 自動表...
-
Excelについて
-
autocad 数値が表示されなくな...
-
VBAの日付チェックでオーバーフ...
-
エクセルで半角カナや特殊文字...
-
マクロ 入力規則は残し文字の...
-
excelのInputBoxで日本語入力OF...
-
ドロップダウンリストを2列で...
-
エクセルVB ポップアップウィ...
-
エクセル 日付超過でポップアッ...
-
求人情報で「SAP入力可能な方」...
-
小数点以下の入力規則
-
pdfの文字入力で一文字ずつしか...
-
excelで第二金曜日を…
-
EXCEL VBAの入力規則で小数点桁...
-
アクセス2000 クエリ抽出でBet...
-
エクセルで入力規則(リスト)...
-
Excelで日報を自動で作成したい...
-
弥生会計05、「摘要」入力について
-
【スプレッドシート】時間入力...
おすすめ情報