Excel VBA質問箱 IV

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

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


13243 / 13646 ツリー ←次へ | 前へ→

【6360】関数の引数 ダイアログボックス NinNin 03/6/26(木) 8:57 質問
【6370】Re:関数の引数 ダイアログボックス Taka-mk2 03/6/26(木) 13:56 回答
【6376】組込み関数のなんです NinNin 03/6/26(木) 15:36 質問
【6384】Re:組込み関数のなんです ichinose 03/6/26(木) 18:22 発言
【6385】なるほど! NinNin 03/6/26(木) 20:48 お礼
【6390】おお〜。 Taka-mk2 03/6/27(金) 8:32 発言

【6360】関数の引数 ダイアログボックス
質問  NinNin  - 03/6/26(木) 8:57 -

引用なし
パスワード
   [関数の挿入]から関数を選択すると、[関数の引数]ダイアログボックスが表示されます。
これをVBAで関数名を指定して、[関数の引数]ダイアログボックスを表示させることができますか?

【6370】Re:関数の引数 ダイアログボックス
回答  Taka-mk2  - 03/6/26(木) 13:56 -

引用なし
パスワード
   ▼NinNin さん:

こんにちはぁ。
梅雨空の東京から。

>[関数の挿入]から関数を選択すると、[関数の引数]ダイアログボックスが表示されます。
>これをVBAで関数名を指定して、[関数の引数]ダイアログボックスを表示させることができますか?

できますよ。
私の環境は、Windows2000&Excel2000ですけれど。
関数を作成して、[関数の挿入]を選択。
ここで[関数の分類]で、"ユーザ定義"を選びます。
すると、自作した関数が表示され、引数の変数名が[関数の引数]ダイアログボックスに表示されます。

と、はずしていたらごめんなさい。
いじょ、参考になればぁ。

それでは!

【6376】組込み関数のなんです
質問  NinNin  - 03/6/26(木) 15:36 -

引用なし
パスワード
   Taka-mk2 さん、ありがとうございます。
すみません。質問の仕方が悪かったようです。
ユーザー定義関数でなくて、組込み関数のダイアログボックスをVBAで表示させたいのです。
申し訳ありません。もう一度質問させてください。

例えば、VLOOKUP関数を呼び出す場合次のような手順になると思います。(EXCEL2002の場合)
(1)[関数の挿入]ダイアログで、[関数の分類]で[検索/行列]を選択、[関数名]で[VLOOKUP]を選択し、[OK]をクリックすると、
(2)VLOOKUP関数の[関数の引数]ダイアログボックスが表示されます。
↑の(1)の部分をスキップして、[関数の引数]ダイアログボックスを表示させたいのです。

Sub INPUTVLP()
  Dim i As Integer
  ActiveCell.FormulaR1C1 = "=VLOOKUP(検索値,範囲,列番号,検索の型)"
  SendKeys "{F2}"
  For i = 1 To 16
    SendKeys "{LEFT}"
  Next i
End Sub
というふうにも考えてみましたが。
これだと、[関数の引数]ダイアログボックスが出てきません。
何か方法はないでしょうか?よろしくお願いします。

【6384】Re:組込み関数のなんです
発言  ichinose  - 03/6/26(木) 18:22 -

引用なし
パスワード
   ▼NinNin さん:
こんばんは。
>Taka-mk2 さん、ありがとうございます。
>すみません。質問の仕方が悪かったようです。
>ユーザー定義関数でなくて、組込み関数のダイアログボックスをVBAで表示させたいのです。
>申し訳ありません。もう一度質問させてください。
>
>例えば、VLOOKUP関数を呼び出す場合次のような手順になると思います。(EXCEL2002の場合)
>(1)[関数の挿入]ダイアログで、[関数の分類]で[検索/行列]を選択、[関数名]で[VLOOKUP]を選択し、[OK]をクリックすると、
>(2)VLOOKUP関数の[関数の引数]ダイアログボックスが表示されます。
>↑の(1)の部分をスキップして、[関数の引数]ダイアログボックスを表示させたいのです。
>
>Sub INPUTVLP()
>  Dim i As Integer
>  ActiveCell.FormulaR1C1 = "=VLOOKUP(検索値,範囲,列番号,検索の型)"
>  SendKeys "{F2}"
>  For i = 1 To 16
>    SendKeys "{LEFT}"
>  Next i
>End Sub
>というふうにも考えてみましたが。
>これだと、[関数の引数]ダイアログボックスが出てきません。
>何か方法はないでしょうか?よろしくお願いします。
[関数の引数]ダイアログボックスにエラーが出ているのが気に入らないんですが、
これで代用できますか?
'============================================
Sub test()
  On Error Resume Next
  ActiveCell.Formula = "=VLOOKUP(検索値,範囲,列番号,検索の型)"
  Application.Dialogs(xlDialogFunctionWizard).Show
  On Error GoTo 0
End Sub

要は、初期設定時の関数の引数をどうするかですが(ActiveCell.Formula = "")、
他に方法があるのかもしれません。

【6385】なるほど!
お礼  NinNin  - 03/6/26(木) 20:48 -

引用なし
パスワード
   ichinose さん、こんばんは。
回答ありがとうございます。
>[関数の引数]ダイアログボックスにエラーが出ているのが気に入らないんですが、
>これで代用できますか?
>'============================================
>Sub test()
>  On Error Resume Next
>  ActiveCell.Formula = "=VLOOKUP(検索値,範囲,列番号,検索の型)"
>  Application.Dialogs(xlDialogFunctionWizard).Show
>  On Error GoTo 0
>End Sub
>
>要は、初期設定時の関数の引数をどうするかですが(ActiveCell.Formula = "")、
>他に方法があるのかもしれません。
上を元にいろいろ試行錯誤してるうちに、とりあえずできました。
Sub test2()
  ActiveCell.Formula = "=VLOOKUP(,,,)"
  Application.Dialogs(xlDialogFunctionWizard).Show
End Sub
でも、他の関数のときは、ご指摘の通り、初期設定時の関数の引数により、エラー出ますね。

【6390】おお〜。
発言  Taka-mk2  - 03/6/27(金) 8:32 -

引用なし
パスワード
   おはようございますッ。
今日は快晴の東京から。

>NinNinさん
すみません(汗。
思いっきりはずしていましたね==;
でも、解決されたようで何よりです。
今後ともよろしくですッ。

>ichinose
さすがですッ。
xlDialogFunctionWizardを使うのだろうな、というところまでは
思いつきましたが、実際に出せるとは思っていませんでした。
今後とも参考にさせていただきますね!

それでは。
金曜日も頑張っていきましょう♪

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