Excel VBA質問箱 IV

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

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


6823 / 13644 ツリー ←次へ | 前へ→

【42814】自作関数にヘルプを追加したい 村長 06/9/22(金) 17:41 質問[未読]
【42850】Re:自作関数にヘルプを追加したい りん 06/9/23(土) 11:31 回答[未読]
【42905】Re:自作関数にヘルプを追加したい 村長 06/9/25(月) 10:03 質問[未読]
【42910】Re:自作関数にヘルプを追加したい りん@通りすがり 06/9/25(月) 11:51 回答[未読]
【42915】Re:自作関数にヘルプを追加したい りん@通りすがり 06/9/25(月) 12:56 回答[未読]
【42927】Re:自作関数にヘルプを追加したい 村長 06/9/25(月) 17:33 お礼[未読]

【42814】自作関数にヘルプを追加したい
質問  村長  - 06/9/22(金) 17:41 -

引用なし
パスワード
   Excelの「関数の挿入」ダイアログで、自作のアドイン関数にヘルプを
表示させたいと思っています。

方法として、表示させるヘルプファイルを作成し、VBA上でMacroOptionsを
使用するところまではわかったのですが、実行するとMacroOptionsのところで
「アプリケーション定義またはオブジェクト定義のエラーです」となってしまい、
登録することができません。
MacroOptionsのコードもサンプルを殆ど変えずに使用しているため、
何が悪いのか検討がつかない状況です。
ヘルプを表示させる方法をご存知の方がいたら教えてください。

VBAのソースは以下になります

myFileName = "TEST.HLP"
Application.MacroOptions Macro:="クラス.メソッド", _
  Description:="ヘルプメッセージ", _
  Category:="14", _
  HelpFile:=myFileName

環境:Excel2003 又は 2002

よろしくお願い致します。

【42850】Re:自作関数にヘルプを追加したい
回答  りん E-MAIL  - 06/9/23(土) 11:31 -

引用なし
パスワード
   村長 さん、こんにちわ。

>Excelの「関数の挿入」ダイアログで、自作のアドイン関数にヘルプを
>表示させたいと思っています。

ヘルプファイルはProject1.HLPをブックと同じフォルダに準備
標準モジュールに適当な関数を作って
Function Fcalc() As Date
  Fcalc = Date
End Function

ブックオープンイベントに関数挿入ダイアログ関係の設定
Private Sub Workbook_Open()
  With Application
   .MacroOptions Macro:=.ThisWorkbook.Name & "!FCalc", _
      Description:="今日の日付を表示します(TODAY()と同じです)", _
      Category:=2, _
      HelpFile:=.ThisWorkbook.Path & .PathSeparator & "Project1.hlp"
  End With
End Sub

「?」ボタンのクリックではないですが、F1でヘルプがでました。(XL2000)
通常の関数でも「?」が機能しないのは仕様なんですかね。

似たようなエラーメッセージが出たのは、FunctionにPrivateが付いているときだけでした。
あとはコードをみないとわかりません。

【42905】Re:自作関数にヘルプを追加したい
質問  村長  - 06/9/25(月) 10:03 -

引用なし
パスワード
   りんさん、レスありがとうございます。

私の説明不足でしたが、
既存の分類ではなく、新しい分類を追加し、そこに関数を追加して
ヘルプを表示させたいと思っています。

以下のコードで新しい分類を追加後、その分類に自作関数を追加してヘルプを
設定することができるようですが、1.のNameでダミーの関数を設定しないと
いけません。
※分類追加時に指定する関数(DmyFunc)にはヘルプを設定できない?

そこでダミーを設定しないで済む方法がないかと思った次第です。

'1.新しい分類を追加する
ActiveSheet.Names.Add Name:="DmyFunc", RefersTo:="A25", _
              Category:="追加分類", _
              MacroType:=xlFunction
'2.ユーザー定義関数の説明を追加する
Application.MacroOptions Macro:="Func21", _
             Description:="追加した関数の説明です", _
             Category:="追加分類"

【42910】Re:自作関数にヘルプを追加したい
回答  りん@通りすがり  - 06/9/25(月) 11:51 -

引用なし
パスワード
   村長 さん、こんにちわ。

>既存の分類ではなく、新しい分類を追加し、そこに関数を追加して
>ヘルプを表示させたいと思っています。

前回のサンプルの、ブックのOpenイベントを一部変えてください。

Private Sub Workbook_Open()
  'Categoryで新しい分類の文字列を指定するだけ。
  With Application
   .MacroOptions Macro:=.ThisWorkbook.Name & "!FCalc", _
      Description:="今日の日付を表示します(TODAY()と同じです)", _
      Category:="自作関数なのよ", _
      HelpFile:=.ThisWorkbook.Path & .PathSeparator & "Project1.hlp"
  End With
End Sub

こんな感じです。

【42915】Re:自作関数にヘルプを追加したい
回答  りん@通りすがり  - 06/9/25(月) 12:56 -

引用なし
パスワード
   村長 さん、こんにちわ。

アドインを作成する場合、組み込まれたままエクセルを起動したときにエラーになるので、ちょっと修正。

↓標準モジュールへ
Function AAAAA() As String
  '関数の挿入ダイアログで、全て表示にしたときに一番上になる名前
  AAAAA = Format(Date, "ggge年m月d日")
End Function

↓Thisworkbookへ
Private Sub Workbook_Open()
  With Application
    If .Workbooks.Count = 0 Then .Workbooks.Add  'エラー回避のため
    '関数の挿入ダイアログに新しいカテゴリで追加
    .MacroOptions Macro:=.ThisWorkbook.Name & "!AAAAA", _
       Description:="今日の日付を和暦文字列で返します", _
       Category:="自作関数なのよ", _
       HelpFile:=.ThisWorkbook.Path & .PathSeparator & "Project1.hlp"
  End With
End Sub

アドインと同じフォルダにヘルプファイルを入れておけば、ちゃんと表示されました。

【42927】Re:自作関数にヘルプを追加したい
お礼  村長  - 06/9/25(月) 17:33 -

引用なし
パスワード
   りんさん、レスありがとうございます。

教えて頂いたコードを基にすることで、ダミーを作らずに
ヘルプファイルを表示させることができました。

ありがとうございました。

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