こんにちは。
ACCESS 97 を独学で学んでいます。
初歩の初歩だと思うんですが、教えてください。
マクロ作成の例題で、電卓を起動するというのがありました。
アプリケーションの実行-電卓を開く
コマンドライン-CALC.EXE
とし、保存して閉じて、実行すると電卓が起動します。
そのマクロを、
ツール-マクロ-マクロをVBに変換
とすると、下記のようにモジュールに変換されます。
Option Compare Database
Option Explicit
'-------------------------------------------------
' マクロ1
'-------------------------------------------------
Function マクロ1()
Call Shell("CALC.EXE", 1)
End Function
このモジュールを「デザイン」で開いて、「開始」等で実行することは出来ますが、開いていないときには「実行」ボタンがグレイアウトしています。
閉じた状態で「実行」するのって、どうするんですか?
No.3ベストアンサー
- 回答日時:
こんばんは。
先ず、少し用語の説明です。
プロシージャ:実行単位。Sub ~ End Sub または Function ~ End Function がプロシージャです。
モジュール:保存するときの単位。保存するときにモジュール1とか名前を付けられますよね。
実行はモジュールではなくプロシージャであることを注意してくださいね。
で、実行方法ですが・・・
1.マクロの「プロシージャの実行」アクションで指定(Function 限定)
2.メニューまたはツールバーのボタンとして登録し実行(Function 限定)
3.イベントで実行
例えばコマンドボタンの「クリック時」イベントのボックスに
=マクロ1()
と記述します。これは Function の記述です。Sub ではこのような指定は出来ません。
4.他のプロシージャから呼び出して実行
他のプロシージャのコードの中に
マクロ1
と記述します。
Function なので本来は
変数名 = マクロ1()
と書くべきなのですが、今回は最初の記述でOKです。
やっと少し見えました。
ああそうか、という感じです。
たしかにEXCEL のVBE も、実行ボタンのようなものを作って貼り付けてやらないと、自分以外の人には使いにくいものですもんね。
マクロで、プロシージャの実行-マクロ1()として、結果を見ることができました。
ところでせっかく書いてくれていますが、SUB とFUNCTION のちがいがわかりません(>_<)
VBE はずっとSUB で作成してきました。
ACCESS で「マクロの変換」をして、できるモジュールはFUNCTION なんですね(?_?)
また指導をお願いすることもあると思います、本当にありがとうございました。
No.5
- 回答日時:
こんにちは。
#2 のWendy02です。すでに、ご説明があるので、重複しますが、私からひとこと。
>モジュールタブの画面の「実行」ボタンが実行できるようになることはない、ということですね。
そういうことじゃないです。フォームのボタンからクリック時のイベントを設定すればよいのであって、それは、マニュアルなどに載っているはずです。
Access のFunction は、関数として呼び出してあげれば、動きます。プロシージャと関数の本質的な違いは、ここではないはずです。
> マニュアルなどに載っているはずです。
たしかにそんな表記を、どっかのマニュアルで見たような気がします(いまデスクに山積み)。
今はちょっと、しなければならないことと外れているので、知識の片隅に留め置かせていただきます。
何度もありがとうございました。
No.4
- 回答日時:
こんにちは。
#3 の GreatDragon です。
> SUB とFUNCTION のちがいがわかりません(>_<)
Sub プロシージャは、記述したステートメントを実行するだけのシンプルなプロシージャっです。
Function は、何らかの値を返すことが出来るプロシージャです。何でも構わないので関数を
思い浮かべてください。関数は何らかの計算などを実行してその結果を返してくれますよね。
Function は俗に「ユーザー定義関数」と呼ばれています。
上記は一般的な説明ですが、下記は Access のテクニック的な説明です。
恐らく?な箇所があると思います。ご質問のプロシージャは Function ですが、値を返す記述が
ありません。で、回答の #3 の 3 をご覧ください。
Function ですと、イベントのボックスにプロシージャ名を記述できます。こうすることにより
複数のコントロールのイベントに共通のプロシージャとして記述できます。Sub だと夫々のコントロール
に個別にプロシージャを記述する必要があります。
このような説明でお分かりいただけたでしょうか?
ご丁寧に何度も、ありがとうございます。(;_;)
関数がFunction なんですね。。
「はあ、なるほど」
と思っても、関数は値を返すものではないかと思ってしまい、この場合のようにプログラムを起動して返す、というのが実感できませんが。。
某入門書にも、「プロシージャの実行」等は、sub は不可とあります。
納得できなくても、そういうものだと解釈して、慣れていくしかなさそうですね。
個人的には、環境が昨日ACCESS 2000になりました(会社がバージョンアップしてくれた)
亀よりも遅いですが、ゆっくりとしたいこと(しなければならないこと)に近づいています。
ありがとうございました。
No.1
- 回答日時:
マクロは、一度も、使ったことがありませんが...
思うに、マクロ=プロシージャ(関数)ですよね!
「大きな計算処理を小さな仕事に分割し、最初ゼロから始める代わりに他人の作成したものを組み合せてプログラムをつくるには関数を使うのがよい。
関数をうまくつくれば、プログラム各部の操作の詳細部を隠すことができるし、細部について知らなくても、全体を明確化し、プログラム変更を容易にすることができる。」
(「プログラミング言語C」82頁)
ところで、かかる関数は、プログラムコードで呼び出して使用します。
1、テストフォームを作る。
2、コマンドボタンを配置する。
2、関数をコールするコードを書く。
などしたらどうでしょう!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) パーソナルXLSBのfuctionを呼び出すと「Functionが定義されていません」のエラーになる 2 2022/08/22 22:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/11 11:05
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Excel(エクセル) 開いているフォルダを全て閉じる、マクロを教えて下さい 3 2022/08/28 08:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 2 2022/11/18 15:34
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
「平成」を感じるもの
「昭和レトロ」に続いて「平成レトロ」なる言葉が流行しています。 皆さんはどのようなモノ・コトに「平成」を感じますか?
-
「覚え間違い」を教えてください!
私はかなり長いこと「大団円」ということばを、たくさんの団員が祝ってくれるイメージで「大円団」だと間違えて覚えていました。
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
お風呂の温度、何℃にしてますか?
みなさん、家のお風呂って何℃で入ってますか? ぬるめのお湯にゆったり…という方もいれば、熱いのが好き!という方もいるかと思います。 我が家は平均的(?)な42℃設定なのですが、みなさんのご家庭では何℃に設定していますか?
-
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
マクロとモジュールの違いを教えてください
Access(アクセス)
-
アクセスVBAのMe!と[ ]
Access(アクセス)
-
-
4
Access VBA標準モジュールについてです。
Access(アクセス)
-
5
ACCESSのフォーム、開くんですが、見えないようにするには
Access(アクセス)
-
6
「#エラー」の回避
Access(アクセス)
-
7
AccessのFormの設定で、開いた時に必ず最大化で表示する方法が分からず困っています
Access(アクセス)
-
8
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
9
エクセルからアクセスのプロシージャーを実行させるには?
Excel(エクセル)
-
10
Access テキスト型に対する指定桁での0埋め方法
その他(データベース)
-
11
Accessクエリで特定の行を削除したい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
callで順に実行されるプロシー...
-
VBA プロシージャの名前の取得
-
エクセルVBAでUserFormを起動し...
-
或るプロシージャの呼び出し元判定
-
Excel VBAで「プログラム実行」...
-
DBMS_OUTPUT.PUT_LINEを実行し...
-
【Excel VBA】 WorksheetやRa...
-
ACCESS マクロをモジュールに変...
-
OutlookVBAで作成したマクロに...
-
エクセルVBAが対応できるプログ...
-
Accessでグローバル変数を宣言...
-
ACCESS2007インポート時の空白...
-
SQL ServerのストアドでUPDATE...
-
excel/vba/public変数
-
PL/SQLのエラーについて
-
Excel2000 セルデータ検索ウィ...
-
エクセルのファイルを自動でFTP...
-
DB2でのストアドプロシージャの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access VBAで行ラベルが定義さ...
-
Accessのマクロでモジュールを...
-
エクセルVBAでUserFormを起動し...
-
VBA プロシージャの名前の取得
-
callで順に実行されるプロシー...
-
OutlookVBAで作成したマクロに...
-
【Excel VBA】 WorksheetやRa...
-
或るプロシージャの呼び出し元判定
-
ACCESS2007インポート時の空白...
-
Accessでグローバル変数を宣言...
-
DBMS_OUTPUT.PUT_LINEを実行し...
-
Excel VBAで「プログラム実行」...
-
ブックオープン時にテキストボ...
-
エクセルVBAが対応できるプログ...
-
ACCESS マクロをモジュールに変...
-
excel/vba/public変数
-
フォームモジュール イベント...
-
vbaでブックを開いたときにコン...
-
PL/SQLのエラーについて
-
VBAのプロシージャー間で、変数の受...
おすすめ情報