初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2023-10-03 15:33:17

あん
Guest

VBSについて

FileMaker(v19:Windows)より、Excel形式で出力し、そのシートを見栄えをよくするためにVBSで罫線、セル幅、フォント等の変更を行っています。
そのシートで特定のセルに対してプルダウンリスト化(例えば性別、都道府県など...)にしたいのですが可能でしょうか?

ネットで調べてもVBAでの記述はあるのですが、VBSでは見つかりません。
(そもそもVBSで可能なのかどうか...?)

もし可能な方法がありましたら教えてください。

#2 2023-10-03 17:24:51

koko009
Guest

Re: VBSについて

セルにプルダウン設定するだけなら下記のコードで出来るみたいです。但し内容はさっぱり分かりませんがhttps://stackoverflow.com/questions/21788845/how-to-add-a-drop-down-list-in-excel-using-vbsからコピペしただけだから

Option Explicit
Dim objExcel, objWB, objws
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWB = objExcel.Workbooks.Add
Set objws = objWB.Sheets(1)
With objws.Range("A1").Validation
        .Add 3, 1, 1, "=$Q$9:$Q$11"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
end With

#3 2023-10-04 09:17:20

あん
Guest

Re: VBSについて

投稿ありがとうがとうございます。

現出力VBSに上記を組み込んでみましたが...うまくいきませんでした...。

私自身、VBSがよくわかっていないので記述に間違いがあるのかもしれませんが...

もう少しいろいろ試してみます。

#4 2023-10-04 09:35:11

himadanee
Guest

Re: VBSについて

Set objWB = objExcel.Workbooks.Add
が新規ブックの作成
        .Add 3, 1, 1, "=$Q$9:$Q$11"
が参照するセル
になってるので、その辺を変えないとだめだと思います。

#5 2023-10-04 13:04:42

koko009
Guest

Re: VBSについて

セル参照でないテスト用として
With objws.Range("A1").Validation
        .Add 3, 1, 1, "=$Q$9:$Q$11"

With objws.Range("A1").Validation
        .Add 3, 1, 1, "京都,大阪,奈良"
のように替えて試してもらえばリスト表示されます。

#6 2023-10-05 15:12:58

あん
Guest

Re: VBSについて

himadaneeさん、koko009さん ありがとうございます。

ご指摘の個所「.Add 3, 1, 1, "京都,大阪,奈良"」の変更でプルダウンが確認出来ました。

ちなみに「.Add」後ろの「3, 1, 1,」は何を意味するのでしょうか??

#7 2023-10-05 15:39:57

koko009
Guest

Re: VBSについて

これはあくまでこじつけ解釈ですが、VBA関連でググると
Validation.Modify メソッド (Excel)
    構文
    パラメーター
    注釈
    例
セル範囲のデータの入力規則を変更します。
構文
式。変更 (型、 AlertStyle、 演算子、 数式 1、 数式 2)
式Validation オブジェクトを表す変数。
パラメーター
名前     必須 / オプション     データ型     説明
Type     省略可能     バリアント型     検証の種類を表す XlDVType 値。
AlertStyle     省略可能     バリアント型     検証アラート スタイルを表す XlDVAlertStyle 値。
演算子     省略可能     バリアント型     データ検証演算子を表す XlFormatConditionOperator 値。
Formula1     省略可能     バリアント型 (Variant)     データ入力規則での条件式の最初の部分を指定します。
Formula2     省略可能     バリアント型     Operator が xlBetween または xlNotBetween の場合のデータ検証式の 2 番目の部分。それ以外の場合、この引数は無視されます。
とあり 上3個を値で示している
xlValidateList     3     指定された一覧に値が存在する必要があります。
xlValidAlertStop     1     中止アイコン
xlBetween     1     間。 2 つの数式が指定されている場合にのみ使用できます。
の部分かな?
ずぶの素人の意見です。

#8 2023-10-05 17:00:18

あん
Guest

Re: VBSについて

koko009さん ありがとうございます。

パラメータの意味がわかりました。
「3, 1, 1,」で問題ないので、これでイケると思います。

#9 2023-10-06 11:54:06

koko009
Guest

Re: VBSについて

引用先を間違えていた。
Validation.Add メソッド (Excel)
    構文
    パラメーター
    注釈
    例
指定した範囲にデータの入力規則を追加します。
構文

式。追加 (型、 AlertStyle、 演算子、 数式 1、 数式 2)

式Validation オブジェクトを表す変数。
パラメーター
名前     必須 / オプション     データ型     説明
型     必須     XlDVType     入力規則の種類を指定します。
AlertStyle     省略可能     バリアント型 (Variant)     入力規則でのエラーのスタイルを指定します。 XlDVAlertStyle クラスの定数は、xlValidAlertInformation、xlValidAlertStop、または xlValidAlertWarning のいずれかです。
演算子     省略可能     バリアント型 (Variant)     データ入力規則の演算子を指定します。 xlBetween、xlEqual、xlGreater、xlGreaterEqual、xlLess、xlLessEqual、xlNotBetween、xlNotEqual のいずれかの定数を指定できます。
Formula1     省略可能     バリアント型 (Variant)     データ入力規則での条件式の最初の部分を指定します。 値は 255 文字を超えてはいけません。
Formula2     省略可能     バリアント型     Operator が xlBetween または xlNotBetween の場合のデータ検証式の 2 番目の部分 (それ以外の場合は、この引数は無視されます)。

こちらの方が正解で、型の省略は不可です。省略可能となっていたのでふと疑問に思い、省略してみるとエラーにななったので引用先の間違いに気付きました誠に申し訳ありません。

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 7 queries executed - Memory usage: 563.82 KiB (Peak: 579.07 KiB) ]