アプリを作り始めて、ちょいちょい冗長なコードになるなと感じており
汎用関数に興味を持ち始めております。
例えば現在気になっているのが
「ファイル1を保存する」というボタンを押すと、いくつかのif条件を抜けた後
目的の保存先に保存する、というコードです。
これについて、
「ファイル2を保存する」「ファイル3を保存する」というコードを作成したいのですが、
ほぼ同じ内容になるため、なんとか効率化できないかと考えております。
function関数だと値を返す関数のため、不可能なのでしょうか・?
初心者の質問で申し訳ありません。
返り値が必要ならFunctionプロシージャ、返り値が必要なければSubプロシージャを使えばいいでしょう。
とくに返り値がなくても処理が成功したか、失敗したかを返すためにFunctionにすることはよくあります。
具体例があったほうが分かり安いと思いますので、現状の「ファイル1を保存する」のコードを提示してもらったら、それをもとにどのように汎用関数(プロシージャ)にするか説明できると思います。
ありがとうございます。
コードを記載します。
AcDirは、下記サイトを採用させていただいております。
https://www.feedsoft.net/access/tips/tips47.html
元々変数を使っていなかったところを、昨夜変数にしたのですが、部分的に変換間違いでおかしいところがあるようです…スミマセン。
MsgBox bPath &"が見つかりません。"
↓
MsgBox bPath & aName &"が見つかりません。"
提示のコードでは変数に値が代入されていないので、正常には動かないですよね。
実際にボタンのクリック時に記述している正常に動くコードを提示してもらえますか。
一応、私の確認したところでは正常に動いているものに対して、一括置換しました。
不備あれば申し訳ありません。
Private Sub から書いてもらえますか。
Dim aName As String: aName = Test1.txt
この Test1.txt ってなんですか。
ここは、
の書き間違いですか。
正常に動いているものをそのままコピーして貼り付けてもらうのはダメですか。
あと、どのようなことをしたいのか箇条書きの文章で説明してもらえますか。
それから汎用にする場合、どこが変化して、どこが共通なのか分かるように説明してください。
このようにやりたいことを分析して他人にも伝わるよう整理することはプログラミングにおいて大切なことです。
人間に伝わらないことを、それより融通のきかないコンピュータに伝えて正しく動作させることは不可能です。
お忙しいところお返事ありがとうございます。
そのままのコードをのせることが難しいのですが、
時間ができ次第、改めてわかりやすくまとめたいと思っています。
そのときは、またよろしくお願いいたします。
一度ユーザー定義関数をキーワードに調べてみることをおすすめします
お気にかけてくださり、ありがとうございます。
とりあえず値渡しで、変数の中身だけ変えてそれぞれの処理を呼び出すようにすることはできるようになりました。
ユーザー定義関数の使いどころはピンときていないので、コード、説明等書き換える時間が取れたらまた相談させていただきたいです。その際は宜しくお願いいたします。
キーワードが「汎用関数」よりも「ユーザー定義関数」のほうが欲しい情報がより多く見つかるだろうくらいの話なのでその「使いどころ」は気にしなくていいですよ