Excel VBA質問箱 IV

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

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


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

【50360】Rangeを引数に持つ関数 りった 07/7/20(金) 21:29 質問[未読]
【50362】Re:Rangeを引数に持つ関数 neptune 07/7/20(金) 22:05 回答[未読]
【50379】Re:Rangeを引数に持つ関数 りった 07/7/23(月) 9:05 質問[未読]
【50381】Re:Rangeを引数に持つ関数 Lindy 07/7/23(月) 9:15 発言[未読]
【50382】Re:Rangeを引数に持つ関数 りった 07/7/23(月) 9:50 質問[未読]
【50383】Re:Rangeを引数に持つ関数 Jaka 07/7/23(月) 10:20 発言[未読]
【50384】Re:Rangeを引数に持つ関数 りった 07/7/23(月) 10:42 お礼[未読]
【50385】Re:Rangeを引数に持つ関数 neptune 07/7/23(月) 10:55 発言[未読]
【50391】Re:Rangeを引数に持つ関数 りった 07/7/23(月) 13:27 お礼[未読]

【50360】Rangeを引数に持つ関数
質問  りった  - 07/7/20(金) 21:29 -

引用なし
パスワード
   いつもお世話になっております。

Rangeを引数に持つ関数って作れますか?
下記を実行したところエラーになりました。

Option Explicit

Sub main()
 fillA (ActiveCell) ' 「オブジェクトが必要です。」とのこと
End Sub

Sub fillA(ByRef r As Range)
 r.Value = "A"
End Sub

【50362】Re:Rangeを引数に持つ関数
回答  neptune  - 07/7/20(金) 22:05 -

引用なし
パスワード
   ▼りった さん:
>いつもお世話になっております。
>
>Rangeを引数に持つ関数って作れますか?
>下記を実行したところエラーになりました。
書式が違うだけです。
>fillA (ActiveCell) ' 「オブジェクトが必要です。」とのこと

VBAの文法を勉強せずに書けると思ってはいけません。

【50379】Re:Rangeを引数に持つ関数
質問  りった  - 07/7/23(月) 9:05 -

引用なし
パスワード
   いつもお世話になっています。

>>Rangeを引数に持つ関数って作れますか?
>>下記を実行したところエラーになりました。
>書式が違うだけです。
>>fillA (ActiveCell) ' 「オブジェクトが必要です。」とのこと

書式が違うってどういうことでしょうか?

>VBAの文法を勉強せずに書けると思ってはいけません。

ごもっともです。自分もVBAの文法ってちゃんと系統立てて勉強したいのですが、本屋に言って探してみても「文法は二のとりあえず作ってみましょう」ってノリの本やリファレンスマニュアルしか見つかりません。良いサイトご存知でしたら教えて下さい。

【50381】Re:Rangeを引数に持つ関数
発言  Lindy  - 07/7/23(月) 9:15 -

引用なし
パスワード
   ▼りった さん:
こんにちは

・普通のプロシージャと関数のプロシージャの違い
・プロシージャの呼び出し方
・プロシージャを呼び出す際の( )の使い方
・ByRefとByValの違い

など勉強されればスムーズに記述できるかと思います。
勉強されているとの事ですのであえてヒントのみで。

【50382】Re:Rangeを引数に持つ関数
質問  りった  - 07/7/23(月) 9:50 -

引用なし
パスワード
   >・普通のプロシージャと関数のプロシージャの違い
>・プロシージャの呼び出し方
>・プロシージャを呼び出す際の( )の使い方
>・ByRefとByValの違い
>
>など勉強されればスムーズに記述できるかと思います。
>勉強されているとの事ですのであえてヒントのみで。

(文法の)勉強してません。というか勉強のしかたが判りません。(ToT)
文法等を勉強する為のサイトを教えて下さい。
マクロの記録→ヘルプ or 人のコード見る→ヘルプで今までやってきました。
上記キーワードを元に検索かけてみましたが、これと言った記載が見つかりませんでした。
ちなみに周りに聞ける人はいません。関数作ってる人がいません。ひとつのsubの中で全部やっちゃってます。逆に自分が聞かれる側です。

【50383】Re:Rangeを引数に持つ関数
発言  Jaka  - 07/7/23(月) 10:20 -

引用なし
パスワード
   >Option Explicit
>
>Sub main()
 Call fillA (ActiveCell)
>End Sub
>
>Sub fillA(ByRef r As Range)
> r.Value = "A"
>End Sub


>Sub main()
 fillA ActiveCell
>End Sub
>
>Sub fillA(ByRef r As Range)
> r.Value = "A"
>End Sub

【50384】Re:Rangeを引数に持つ関数
お礼  りった  - 07/7/23(月) 10:42 -

引用なし
パスワード
   > Call fillA (ActiveCell)
出来ました。ありがとうございます。

Call funcname( arg1 , arg2 , ・・・ )
or
funcname arg1 , arg2 , ・・・
で、自分はごっちゃにしてたってことですね

【50385】Re:Rangeを引数に持つ関数
発言  neptune  - 07/7/23(月) 10:55 -

引用なし
パスワード
   ▼りった さん:
こんにちは

>良いサイトご存知でしたら教えて下さい。
多言語での知識、経験がおありのようですから、Helpで十分じゃないですか?

VBE画面のHelpをクリック
左ペインの目次タブ内に「Visual Basic プログラミングのヒント」と云うのがあります。
この中から必要な物をご覧下さい。
全部とは云いませんが、たいてい必要なものは解説があります。

【50391】Re:Rangeを引数に持つ関数
お礼  りった  - 07/7/23(月) 13:27 -

引用なし
パスワード
   回答ありがとうございます。
Helpの目次見たこと無かったです。(検索して使うものと思い込んでいました。)
良いこと書いてありますね。
だから書籍が無いのか...納得

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