エクセルでインポートした標準モジュールが動かない

このQ&Aのポイント
  • エクセル97VBA対応のVB6で作成されたプログラムを書いてある通りに、VBEでインポートしました。しかし、標準モジュールには表示されているのですが関数の中には表示されないのです。
  • ユーザー定義関数では無くて別の方法で動かすものなのでしょうか?(Calc_Kyureki "2002","5","26"と入力しても名前が間違っていますと出てしまいます)
  • エクセル2003では、エクセル97のVBAを動かすには何か別のインポートの仕方があるのでしょうか?
回答を見る
  • ベストアンサー

エクセルでインポートした標準モジュールが動かないのです。

エクセル97VBA対応のVB6で作成されたプログラムを書いてある通りに、VBEでインポートしました。 しかし、標準モジュールには表示されているのですが関数の中には表示されないのです。 ユーザー定義関数では無くて別の方法で動かすものなのでしょうか? (Calc_Kyureki "2002","5","26"と入力しても名前が間違っていますと出てしまいます) それともエクセル2003では、エクセル97のVBAを動かすには何か別のインポートの仕方があるのでしょうか? 以下のベクターのソフトです。 旧暦 for VB Visual BasicまたはExcel VBAで旧暦を計算する標準モジュール(ソース付き) http://www.vector.co.jp/soft/dl/win95/personal/se243537.html 助けて下さい。宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

このままでは関数としては使えないでしょう。 VBアプリとして使うか、コードを利用するかしないと。 関数として使いたいなら以下のようにファンクションを追加すればいけます。 --- Function hoge(GYear As Integer, Gmonth As Integer, Gday As Integer) As Date Call Calc_Kyureki(GYear, Gmonth, Gday) hoge = Format(Kyureki.QYear & "/" & Kyureki.QMonth & "/" & Kyureki.QDay) End Function --- =hoge(2002,5,26) ・セルの書式を日付にすること ・hogeはすきな言葉に変えて下さい。但しすでにモジュール内で使われている語句以外で。

mamenimameni
質問者

お礼

ありがとうございました。上手くいきました。 旧暦以外の他の機能を使うには更にファンクションで定義をしなければならないので、私にはちょっとレベルが高すぎるようです。 旧暦だけでも出力出来るようになりましたので大変助かりました。 ありがとうございました。

関連するQ&A

  • 標準モジュールが1から3までありますが?

    エクセルVBEの画面を開くと、標準モジュールの下にモジュールが1から3まであります。 使い分けのルールのようなものはあるのですか? マクロの自動記録をしたらモジュール3に記述されていたのですが、通常、 自分で標準モジュールをを記述するときはモジュール1に記述するものですか?

  • エクセルVBAで標準モジュールを保護したい

    エクセルのVBAマクロを使用したエクセルフィルがあります。 ユーザーは標準モジュールに記述した関数を使ってシートのマクロを変更してカストマイズできます。 ユーザーが標準モジュールを変更すると使用できなくなりますので、この標準モジュールだけをユーザーが変更できない、または見えないようにする方法をご教示いただけませんか。 よろしくお願いします。

  • 標準モジュールが入っているワークブック

    Excel VBAです。 二つのワークブックを開いておいた状態で 両方のブック内のユーザーフォームを表示した状態にします。 この時、ある片方のワークブックを表示した状態でもう片方のユーザーフォームを使って 標準モジュールを実行したとします。 すると、当たり前ですが、エラーが出るか、間違った計算を行ってしまいます。 これを防ぐために、 if ActiveWorkbook.Name = xxxxx then といったものを用いる必要があります。 ワークブックの名称を書き換えるたびに このxxxxxのところも毎回書き換える必要があり、面倒なのですが、 実行した標準モジュールが入っているワークブック名を 返り値として返す関数ってありますか?

  • VBAの「標準モジュール」がVBの「Form1.Vb」にあたるのでしょうか?

    VBAの「標準モジュール」がVBの「Form1.Vb」にあたるのでしょうか? (初心者ですいません)

  • 標準モジュールを削除したい。(VBA)

    VBAで、VBAの標準モジュールを削除したいのですが、なかなか出来ません。たぶん、コレクションについての認識があまいからだと思います。VBComponents コレクションのobject.Remove(component)のヘルプには、VBProjects コレクションには、スタンドアロン プロジェクトを指定します。とありますが、そもそもスタンドアロンプロジェクトって何ですか?Application.VBE.VBProjects(4).VBComponents(1).とするとコレクションでなくなってしまいますが、どうやってモジュールと特定するのでしょうか?どなたか詳しい方いらっしゃいましたらご指導願います。よろしくお願いいたします。 VBIDEのライブラリーです。

  • ExcelVBA 標準モジュール内関数の呼出し

    VB6.0からExcelの標準モジュール内のパラメータ付関数を呼出すにはどうしたらよろしいでしょうか? Dim app As Excel.Application Dim wb As Workbook Set app = CreateObject("excel.application") Set wb = app.Workbooks.Open("TestXl.xls") Set app = Nothing 以上のように記述し指定のエクセルファイルをオープンすることはできたのですが ここからどうやって標準モジュールを参照し、その中の関数を実行するかがわかりません。

  • 標準モジュールにコピーして、実行・・・??

    エクセルVBA初心者です。 VBAを勉強すべく関連サイトを見て勉強しようと思ったのですが、 早くもつまづいてしまいました。 コードの例で、 『下記を標準モジュールにコピーして、実行してみてください。』 とあるのですが、 新しいエクセルブックを開いて標準モジュールに、ここでいう "下記"部分をコピペしたところまでは良かったのですが、その先の "実行"の仕方が分かりません。 初心者な質問でお恥ずかしいのですが、どなたか教えてください。 お願いします。

  • Excel VBA:モジュールを複数のブックで共有するには

    お世話になります。 現在、Excel VBAで複数のプログラムを開発中なのですが、 ある程度 処理を共通化したいと思いまして、出来れば標準モジュールと クラスモジュールを別のブックに保存しておき、それを参照設定か何かで 取り込んで動作させたいと思っています。 でも、参照設定しようとしても何かの名称が重複しているらしいエラーが 表示され(しかも何が重複しているのか教えてくれない)、うまくいきません。 ちなみに、共有したいブックは移動する可能性もありますが、最悪、 サーバの固定的なフォルダに置いておくのでも可、と言われています。 (アドインでの取り込みは、この時点で不可能?) うまく(出来れば標準モジュールとクラスモジュールだけ)共有することは できないものでしょうか? 当方、VBの経験は そこそこあるのですが、VBAは 大して使ったことが無い状態です。 もしかしたら、単純にやり方を知らないだけかもしれないのですが、 知恵をお貸しいただければ有難いです。

  • Vb.Netでにおいての「標準モジュール」とは「Form1.vb」のことでしょうか?

    Vb.Netでにおいての「標準モジュール」とは「Form1.vb」のことでしょうか? VBA→VBを勉強している最中の者です。 ご教授よろしくお願い致します。

  • 標準モジュールとクラスモジュールの違い

    マイクロソフトのAccess2000でVBAプログラミングを行なっておりますが、 基本的なことを教えてください。 「標準モジュール」と「クラスモジュール」の違いはなんですか? 例えば、どこからでも使えるプロシージャ Public Function getSum( i1 as integer, i2 as interger ) getSum = i1 + i2 End Function を定義したとして、標準モジュール内に書くのとクラスモジュール内に 書くのとでは、何が違ってきますか?その他とにかく「標準モジュール」 とクラスモジュールの違いを教えてください。

専門家に質問してみよう