!extend:checked:vvvvv:1000:512
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part62
https://mevius.5ch.net/test/read.cgi/tech/1561303297/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part63
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん (ワッチョイ d3d0-EPXH)
2019/09/16(月) 19:34:59.04ID:emfTAhXr0898デフォルトの名無しさん (ワッチョイ adda-3RYV)
2019/11/30(土) 21:30:46.92ID:4jVQowz00 >>894
そのくらい暗算すればいいじゃん
そのくらい暗算すればいいじゃん
899デフォルトの名無しさん (ワッチョイ b57c-EcXK)
2019/11/30(土) 21:37:32.50ID:c6PsAIQc0 >>897
表示されてるものを表示形式通りに取得するやつ
表示されてるものを表示形式通りに取得するやつ
900デフォルトの名無しさん (ワッチョイ adda-3RYV)
2019/11/30(土) 21:54:44.62ID:4jVQowz00 Range("A1").Formula = "=(1+2)*3"
901デフォルトの名無しさん (ワッチョイ 0920-tQqL)
2019/12/01(日) 01:14:32.95ID:hVa/XxLC0 転記マクロを作っていて、AのブックからBのブックに転記をしようと考えているのですが
Aの転記する部分を一旦構造体に全部取り込んでしまってからBブックを開いて転記する方法と
AとBのブックをその都度比較して転記するかで悩んでいます
どっちの方がいいんでしょうか?
Aの転記する部分を一旦構造体に全部取り込んでしまってからBブックを開いて転記する方法と
AとBのブックをその都度比較して転記するかで悩んでいます
どっちの方がいいんでしょうか?
902デフォルトの名無しさん (ブーイモ MMd5-EEfp)
2019/12/01(日) 01:25:45.07ID:xsf905SiM 前者でいいよ。
903デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 01:32:52.78ID:Mv7XM2680 オブジェ.pastespecial(xlpaste〇〇)
オブジェ.pastespecial paste := xlpaste〇〇
これ何が違うの?
前者は戻り値はカッコをつけるっていうルールに従ってなくね?
オブジェ.pastespecial paste := xlpaste〇〇
これ何が違うの?
前者は戻り値はカッコをつけるっていうルールに従ってなくね?
904デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 06:15:52.01ID:qadFHjVDx >>903
前者はメソッドが返す戻り値を取得するために関数としてメソッドを使用している
文法上、引数指定の箇所で括弧が必要
後者はメソッドをコールしてそのまま次の処理に制御を渡している
引数指定の箇所には文法上括弧が不要
前者はメソッドが返す戻り値を取得するために関数としてメソッドを使用している
文法上、引数指定の箇所で括弧が必要
後者はメソッドをコールしてそのまま次の処理に制御を渡している
引数指定の箇所には文法上括弧が不要
905デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 06:39:57.40ID:Mv7XM2680906デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 06:49:15.69ID:Mv7XM2680 pastespecial xlpaste〇〇
これでも行けた…
pastespecialメゾットの戻り値ってなんだ?
x = オブジェ.pastespecial(xlpaste〇〇)
こんなの使うときあるの?
pastespecialの戻り値を使う意味が全くわからない
If MsgBox("実行しますか?", vbYesNo) = vbNo Then
これは戻り値がTRUEかfalseだから意味がわかるけど
これでも行けた…
pastespecialメゾットの戻り値ってなんだ?
x = オブジェ.pastespecial(xlpaste〇〇)
こんなの使うときあるの?
pastespecialの戻り値を使う意味が全くわからない
If MsgBox("実行しますか?", vbYesNo) = vbNo Then
これは戻り値がTRUEかfalseだから意味がわかるけど
907デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 07:55:36.72ID:lg6qJlYj0 >>903
オブジェ→オブジェクト
Selection.PasteSpecial Paste:=xlPasteValues
Selection.PasteSpecial(xlPasteValues)
そういう文法。
前者のメリットは指定できる引数が大量にある時、一つだけ記述することができる上に見やすい
ただ、「:=」のコロンを見落としやすいのがネック
引数が一つだけの時は前者で書く理由はないと思う
>>905
メゾット→メソッド
メソッド=クラス内関数
ただ、vbaなんて全部applicationクラス(と思う)から、関数は全てメソッドに当たりそう
pastespecialはメソッドで間違いない
>>906
>こんなの使うときあるの?
>pastespecialの戻り値を使う意味が全くわからない
そもそも使わないから返り値なんてなんでも良い
俺も使った事無いけど、あえて返すとすればペーストの失敗か成功なのは間違いないだろう
オブジェ→オブジェクト
Selection.PasteSpecial Paste:=xlPasteValues
Selection.PasteSpecial(xlPasteValues)
そういう文法。
前者のメリットは指定できる引数が大量にある時、一つだけ記述することができる上に見やすい
ただ、「:=」のコロンを見落としやすいのがネック
引数が一つだけの時は前者で書く理由はないと思う
>>905
メゾット→メソッド
メソッド=クラス内関数
ただ、vbaなんて全部applicationクラス(と思う)から、関数は全てメソッドに当たりそう
pastespecialはメソッドで間違いない
>>906
>こんなの使うときあるの?
>pastespecialの戻り値を使う意味が全くわからない
そもそも使わないから返り値なんてなんでも良い
俺も使った事無いけど、あえて返すとすればペーストの失敗か成功なのは間違いないだろう
908デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 08:06:02.34ID:qadFHjVDx >>905
メゾットではなくメソッド(Method)ね
PasteSpecialはメソッドだよ
関数の定義は曖昧だが、ここでは制御と戻り値を返す命令文の意味で使っている
一方メソッドはオブジェクト外からアクセス可能になるようメンバとして実装された機能プログラムのことを指す
戻り値を返すものと返さないものの両方がある
メゾットではなくメソッド(Method)ね
PasteSpecialはメソッドだよ
関数の定義は曖昧だが、ここでは制御と戻り値を返す命令文の意味で使っている
一方メソッドはオブジェクト外からアクセス可能になるようメンバとして実装された機能プログラムのことを指す
戻り値を返すものと返さないものの両方がある
909デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 08:12:27.61ID:Mv7XM2680910デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 08:14:33.55ID:qadFHjVDx >>907
細かい話だが、VB6共通の標準関数やステートメント類、列挙定数はApplicationクラス配下のメンバではないはず
あと調べていけばApplicationクラスから独立しているクラスもあるかもしれない
プログラム本体をコードする言語ではなくマクロ言語なのでApplicationというカレントなインスタンスに依存しないクラスがあってもおかしくない
細かい話だが、VB6共通の標準関数やステートメント類、列挙定数はApplicationクラス配下のメンバではないはず
あと調べていけばApplicationクラスから独立しているクラスもあるかもしれない
プログラム本体をコードする言語ではなくマクロ言語なのでApplicationというカレントなインスタンスに依存しないクラスがあってもおかしくない
911デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 08:17:59.92ID:Mv7XM2680 初心者にメンバとかクラス外とか言われてもわからん
912デフォルトの名無しさん (ワッチョイ 122f-Ql8R)
2019/12/01(日) 08:25:10.96ID:BdsW8ng60913デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 08:25:19.80ID:qadFHjVDx914デフォルトの名無しさん (ワッチョイ adda-WKXI)
2019/12/01(日) 08:33:22.24ID:IUtc26dY0 PasteSpecialの戻り値が何なのか知らないけど、
範囲だったら使い道があるんじゃないの。
貼り付けた後に、そのまま書式を変更するとかさ。
範囲だったら使い道があるんじゃないの。
貼り付けた後に、そのまま書式を変更するとかさ。
915デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 08:37:40.53ID:Mv7XM2680 >>913
メンバとオブジェクトの違いって何?
メンバとオブジェクトの違いって何?
916デフォルトの名無しさん (ワッチョイ 122f-Ql8R)
2019/12/01(日) 08:37:49.15ID:BdsW8ng60917デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 08:39:31.79ID:Mv7XM2680 >>916
なんでカッコがいるんだ…
end direction :=xlupじゃダメなのか…
こういうのって気にする人いる?
エラー出たらかっこつけるとかメソット、プロパティの引数指定にはとりあえずかっこつけるとかしてる?
なんでカッコがいるんだ…
end direction :=xlupじゃダメなのか…
こういうのって気にする人いる?
エラー出たらかっこつけるとかメソット、プロパティの引数指定にはとりあえずかっこつけるとかしてる?
918デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 08:48:55.22ID:lg6qJlYj0919デフォルトの名無しさん (ワッチョイ adda-WKXI)
2019/12/01(日) 08:53:45.63ID:IUtc26dY0 実際、クラスを自作すると、プロパティとメソッドを同じように使うことも出来るから、
どっちでやりゃあいいんだ? ってなるときはある。
どっちでやりゃあいいんだ? ってなるときはある。
920デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 08:57:20.31ID:qadFHjVDx >>917
自分で調べるといいよ
自分で調べるといいよ
921デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 09:02:35.06ID:qadFHjVDx VBAのプロパティのアクセサやセッターも実体はただのプロジージャだからね
クラス外から見たらただの関数でしかない
クラス外から見たらただの関数でしかない
922デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 09:04:09.45ID:lg6qJlYj0923デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 09:04:20.04ID:qadFHjVDx >>915
RangeオブジェクトとPasteSpecialメソッドの違いを考えたらわかる
RangeオブジェクトとPasteSpecialメソッドの違いを考えたらわかる
924デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 09:04:29.40ID:Mv7XM2680 なんかイマイチな答えしかこないな
俺は、プロパティ、メソッドで()がつく場合とつかない場合の違いは何?
全部()つけるでいいの?どう意識してるの?ってきいてる
これに対してクラスガーとか言われてもわからん
俺は、プロパティ、メソッドで()がつく場合とつかない場合の違いは何?
全部()つけるでいいの?どう意識してるの?ってきいてる
これに対してクラスガーとか言われてもわからん
925デフォルトの名無しさん (ワッチョイ 122f-Ql8R)
2019/12/01(日) 09:04:33.88ID:BdsW8ng60 >>917
プロパティの引数の括弧は省略できなかったと思う
メソッド(関数)呼び出しで、戻り値を使わない場合は括弧がなくてもいい
この辺は、大昔の文法との見た目を合わせるための仕様
慣れれば自然と使い分けれるようになるから頑張れ
プロパティの引数の括弧は省略できなかったと思う
メソッド(関数)呼び出しで、戻り値を使わない場合は括弧がなくてもいい
この辺は、大昔の文法との見た目を合わせるための仕様
慣れれば自然と使い分けれるようになるから頑張れ
926デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 09:05:35.25ID:Mv7XM2680927デフォルトの名無しさん (ワッチョイ 8101-MhVQ)
2019/12/01(日) 09:05:40.19ID:J+qwPBxd0 北海道のハゲはここにこないのー?
928デフォルトの名無しさん (ワッチョイ 122f-Ql8R)
2019/12/01(日) 09:07:25.33ID:BdsW8ng60929デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 09:09:06.82ID:Mv7XM2680 >>928
君はどうしてるの?
君はどうしてるの?
930デフォルトの名無しさん (ワッチョイ 122f-Ql8R)
2019/12/01(日) 09:20:24.90ID:BdsW8ng60931デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 09:27:30.25ID:Mv7XM2680932デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 09:30:09.60ID:qadFHjVDx >>926
全然違う
RangeクラスとRangeプロパティを混同してはいけない
Range("A1")の式はWorksheetクラスのメンバのRangeプロパティを引数つきで呼び出している
このプロパティ式で参照を取得しているのが、Excelのオブジェクトモデルで定義されたRangeクラスの実体(インスタンス)、つまりA1セルになる
要するに、Range("A1").Valueと書いた場合、.Value以下がRangeオブジェクトのメンバになる
Rangeクラスがセル範囲のコレクションとして自己再帰的に実装されているのは確かだけどね
全然違う
RangeクラスとRangeプロパティを混同してはいけない
Range("A1")の式はWorksheetクラスのメンバのRangeプロパティを引数つきで呼び出している
このプロパティ式で参照を取得しているのが、Excelのオブジェクトモデルで定義されたRangeクラスの実体(インスタンス)、つまりA1セルになる
要するに、Range("A1").Valueと書いた場合、.Value以下がRangeオブジェクトのメンバになる
Rangeクラスがセル範囲のコレクションとして自己再帰的に実装されているのは確かだけどね
933デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 09:34:33.47ID:lg6qJlYj0934デフォルトの名無しさん (ワッチョイ 122f-Ql8R)
2019/12/01(日) 09:46:42.50ID:BdsW8ng60935デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 09:47:10.20ID:Mv7XM2680936デフォルトの名無しさん (ワッチョイ f6f7-4hBt)
2019/12/01(日) 09:52:34.84ID:bUbToLVg0 カッコ有無でエラー出るときあるの勘弁してほしいわ
937デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 09:52:45.12ID:qadFHjVDx938デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 10:01:28.01ID:lg6qJlYj0 更にcallの絡みもある
939デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 10:05:48.08ID:qadFHjVDx >>935
緑川吉行っていうOffice/VBA界の有名人が初心者向けに書いた記事
https://allabout.co.jp/gm/gc/297719/
これはコンパクトで分かりやすい。ただし初心者向けにわざとSheetsをオブジェクト名とかコレクション名とか言っているのは問題がある
正確な知識を得るならこっち
インストラクターのネタ帳 -
「オブジェクト名.プロパティ」という解説はウソですよ
https://www.relief.jp/docs/excel-vba-that-is-not-object-name.html
緑川吉行っていうOffice/VBA界の有名人が初心者向けに書いた記事
https://allabout.co.jp/gm/gc/297719/
これはコンパクトで分かりやすい。ただし初心者向けにわざとSheetsをオブジェクト名とかコレクション名とか言っているのは問題がある
正確な知識を得るならこっち
インストラクターのネタ帳 -
「オブジェクト名.プロパティ」という解説はウソですよ
https://www.relief.jp/docs/excel-vba-that-is-not-object-name.html
940デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 10:12:50.14ID:qadFHjVDx941デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 10:18:48.73ID:lg6qJlYj0942デフォルトの名無しさん (ワッチョイ b1f1-uW/g)
2019/12/01(日) 10:21:01.02ID:19U1wNi50 >>939
どう間違ってるのですか?
どう間違ってるのですか?
943デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 10:21:51.97ID:qadFHjVDx >>942
記事を読めば分かる
記事を読めば分かる
944デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 10:25:54.76ID:qadFHjVDx >>941
組み込みオブジェクトはそもそも仕様としてNewできなさそうだけどな
要は As ActiveCell とか As Cells とかいう型指定が出来ないってことだわ、そういうクラスが存在しないわけだから
組み込みオブジェクトはそもそも仕様としてNewできなさそうだけどな
要は As ActiveCell とか As Cells とかいう型指定が出来ないってことだわ、そういうクラスが存在しないわけだから
945デフォルトの名無しさん (スップ Sd12-a1aH)
2019/12/01(日) 11:08:22.23ID:tARyXBCrd NEWと言えば何でintegerとかstringは宣言した段階で使えるのに
オブジェクト型はインスタンス化しないと使えんないの?
オブジェクト型はインスタンス化しないと使えんないの?
946デフォルトの名無しさん (ドコグロ MM9a-e3ak)
2019/12/01(日) 11:19:32.90ID:SqfEoEmMM 面倒だから
integerは値型だからとかもっともらしい説明を付けることもできるが、それは結果論に過ぎない
integerは値型だからとかもっともらしい説明を付けることもできるが、それは結果論に過ぎない
947デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 11:27:41.76ID:lg6qJlYj0 インスタンスという概念が無いとそれが新規のオブジェクトなのか既存のオブジェクトかの見分けが付かないよ
他の言語だとstaticとかインスタンス化せずに使えるクラスもあるけどね
他の言語だとstaticとかインスタンス化せずに使えるクラスもあるけどね
948デフォルトの名無しさん (スップ Sd12-a1aH)
2019/12/01(日) 11:52:45.15ID:tARyXBCrd インスタンス化は実体化するため=メモリ領域確保するためって解釈だけど
integerだろうがstringだろうがメモリ確保してるわけだし
>>947
dim x as classtest
dim y as classtest
みたいなので見分けってつかないの?
integerだろうがstringだろうがメモリ確保してるわけだし
>>947
dim x as classtest
dim y as classtest
みたいなので見分けってつかないの?
949デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 12:08:59.14ID:qadFHjVDx 正確に言うと値の代入もLetステートメントで行うのがBasic系言語の本来の姿
それを規約上で略記できるようにしているにすぎない
逆にSetステートメントは言語設計上、変数用に確保されたスタックメモリに格納される値がヒープへの参照ポインタであることを示す役割を持っているものと思われる
Variant型変数にオブジェクトを代入するときもこのSetがあるおかげで、スタックの値を参照アドレスとして解釈できるようになっているはず
それを規約上で略記できるようにしているにすぎない
逆にSetステートメントは言語設計上、変数用に確保されたスタックメモリに格納される値がヒープへの参照ポインタであることを示す役割を持っているものと思われる
Variant型変数にオブジェクトを代入するときもこのSetがあるおかげで、スタックの値を参照アドレスとして解釈できるようになっているはず
950デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 12:55:42.14ID:lg6qJlYj0 >>948
サチコ、それインスタンス化や
サチコ、それインスタンス化や
951デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 12:56:49.87ID:lg6qJlYj0952デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 14:45:17.26ID:qadFHjVDx >>951
Letとのバッティングだろう
推測だが、VB6/VBAのコンパイラは、代入演算子と等価演算子がともに'='であることを前提とした仕様になっているんだと思う
プリミティブ型の値の代入はスタックの値のコピーに他ならないので、代入演算子を等価演算子と混同しても論理矛盾が起きない
オブジェクトの場合はそうはいかないので、オブジェクト変数として型宣言した変数へのインスタンス代入の際にはSetの識別子付与を強制するようにしてるんじゃなかろうか
VB.NETではSetが要らなくなってるからコンパイラの仕様だよなこれは
Letとのバッティングだろう
推測だが、VB6/VBAのコンパイラは、代入演算子と等価演算子がともに'='であることを前提とした仕様になっているんだと思う
プリミティブ型の値の代入はスタックの値のコピーに他ならないので、代入演算子を等価演算子と混同しても論理矛盾が起きない
オブジェクトの場合はそうはいかないので、オブジェクト変数として型宣言した変数へのインスタンス代入の際にはSetの識別子付与を強制するようにしてるんじゃなかろうか
VB.NETではSetが要らなくなってるからコンパイラの仕様だよなこれは
953デフォルトの名無しさん (ワッチョイ 9279-luhV)
2019/12/01(日) 15:01:32.65ID:pJZuHPp00 参照カウント型GCの都合だよ
Setで左辺のオブジェクトの参照カウントが+1されて変数に束縛される
左辺がNothingだったら束縛していたオブジェクト参照カウントを-1する
変数がemptyやNothingだったら何もしない
見た目以上に重い代入処理
関数や手続きの戻りまで行ったら全てのローカル変数に対してSet 変数 = Nothing相当の処理をする
だから関数の最後でNothingの代入は不要
ただし
Setで左辺のオブジェクトの参照カウントが+1されて変数に束縛される
左辺がNothingだったら束縛していたオブジェクト参照カウントを-1する
変数がemptyやNothingだったら何もしない
見た目以上に重い代入処理
関数や手続きの戻りまで行ったら全てのローカル変数に対してSet 変数 = Nothing相当の処理をする
だから関数の最後でNothingの代入は不要
ただし
954デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 15:36:05.55ID:qadFHjVDx955デフォルトの名無しさん (ワッチョイ 122f-Ql8R)
2019/12/01(日) 15:43:44.55ID:BdsW8ng60956デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 15:47:47.95ID:qadFHjVDx957デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 15:49:14.68ID:lg6qJlYj0 >>955
あーそれだ、ありがとう
setが無いと、
foo = cells(1,1)
が
set foo = cells(1,1)
なのか
foo = cells(1,1).value
なのか、
見分けが付かないって事だね
あーそれだ、ありがとう
setが無いと、
foo = cells(1,1)
が
set foo = cells(1,1)
なのか
foo = cells(1,1).value
なのか、
見分けが付かないって事だね
958デフォルトの名無しさん (ワッチョイ 122f-Ql8R)
2019/12/01(日) 16:05:54.42ID:BdsW8ng60 >>942
ちょっとリンク先見てみたけど、微妙な説明してるなぁ
混乱する一番の原因は、
オブジェクトを返すプロパティには、そのオブジェクトの型と同じ名前を使う
っていう指針があるから
Dim r As Range
のRangeは型名(=オブジェクト名)
Set r = ActiveSheet.Range("A1")
のRangeは文法的にはWorksheetオブジェクトのRangeプロパティ
RangeプロパティはRange型のインスタンスを返す
ActiveSheetなんてオブジェクトはないが、これは
Set r = Application.ActiveSheet.Range("A1")
の省略形とみなされるので、ApplicationオブジェクトのActiveSheetプロパティだと解釈される
ActiveSheetプロパティが返しているものがWorksheetオブジェクト(のインスタンス)
Worksheet型じゃなくてSheet型だろとかいう突っ込みとか
Rangeのデフォルトプロパティだろとかいう突っ込みは勘弁な
ちょっとリンク先見てみたけど、微妙な説明してるなぁ
混乱する一番の原因は、
オブジェクトを返すプロパティには、そのオブジェクトの型と同じ名前を使う
っていう指針があるから
Dim r As Range
のRangeは型名(=オブジェクト名)
Set r = ActiveSheet.Range("A1")
のRangeは文法的にはWorksheetオブジェクトのRangeプロパティ
RangeプロパティはRange型のインスタンスを返す
ActiveSheetなんてオブジェクトはないが、これは
Set r = Application.ActiveSheet.Range("A1")
の省略形とみなされるので、ApplicationオブジェクトのActiveSheetプロパティだと解釈される
ActiveSheetプロパティが返しているものがWorksheetオブジェクト(のインスタンス)
Worksheet型じゃなくてSheet型だろとかいう突っ込みとか
Rangeのデフォルトプロパティだろとかいう突っ込みは勘弁な
959デフォルトの名無しさん (ワッチョイ 9201-MhVQ)
2019/12/01(日) 18:07:13.10ID:Enyr5Fgf0 >>958
> 混乱する一番の原因は、
> オブジェクトを返すプロパティには、そのオブジェクトの型と同じ名前を使う
> っていう指針があるから
違うよ
オブジェクトなんて曖昧な用語を使うから混乱するの
型(クラス)と実体(インスタンス)をきちんと区別すればいいだけ
> 混乱する一番の原因は、
> オブジェクトを返すプロパティには、そのオブジェクトの型と同じ名前を使う
> っていう指針があるから
違うよ
オブジェクトなんて曖昧な用語を使うから混乱するの
型(クラス)と実体(インスタンス)をきちんと区別すればいいだけ
960デフォルトの名無しさん (ワッチョイ 3275-R3ru)
2019/12/01(日) 19:22:42.00ID:y7nKgQdu0 Select CaseステートメントでLong型変数の判定がおかしいのですがなぜですか?
@では5000未満と判定されているのに、Aではきちんと12500と判定されます
https://i.imgur.com/TmJ2jHa.png
https://pastebin.com/LvSb9cmT
@では5000未満と判定されているのに、Aではきちんと12500と判定されます
https://i.imgur.com/TmJ2jHa.png
https://pastebin.com/LvSb9cmT
961デフォルトの名無しさん (ワッチョイ 3275-R3ru)
2019/12/01(日) 19:27:45.01ID:y7nKgQdu0 自決しました
String型で値渡ししてました…
String型で値渡ししてました…
962デフォルトの名無しさん (ワッチョイ 69f0-a1aH)
2019/12/01(日) 19:43:10.04ID:oxdJbHeB0 値型はNewしないで参照型はNewするというルールに従うと
別言語でStringは参照型なのに何でNewしなくていいのかと悩んだな
結局参照型でもNewしなくていい場合があるってスルーするのが一番だけど
別言語でStringは参照型なのに何でNewしなくていいのかと悩んだな
結局参照型でもNewしなくていい場合があるってスルーするのが一番だけど
963デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 19:55:09.73ID:lg6qJlYj0 stringは今となっては値として何も考えずに使えるよね
昔は配列だの何だの意外とめんどくさかった。更に文字コードやなんやでそれはもう
https://docs.microsoft.com/ja-jp/dotnet/api/system.string?redirectedfrom=MSDN&view=netframework-4.8#constructors
昔は配列だの何だの意外とめんどくさかった。更に文字コードやなんやでそれはもう
https://docs.microsoft.com/ja-jp/dotnet/api/system.string?redirectedfrom=MSDN&view=netframework-4.8#constructors
964デフォルトの名無しさん (ワッチョイ a9b3-nvwQ)
2019/12/01(日) 20:17:07.69ID:Ta8YhOMq0 え、プロパティの引数って絶対に()つけないといけないの?
そこら辺の文法が謎だわ
本でも説明されてないし
ネットで検索しまくってもプロパティの引数には()をつけろなんて書いてないし
どこでそんな知識仕入れてきたの?
そこら辺の文法が謎だわ
本でも説明されてないし
ネットで検索しまくってもプロパティの引数には()をつけろなんて書いてないし
どこでそんな知識仕入れてきたの?
965デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 20:27:51.07ID:lg6qJlYj0 そもそもプロパティに引数ってのがよーわからん
getterなんだろうけど
getterなんだろうけど
966デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 20:35:21.31ID:Mv7XM2680 >>965
endとかだよ
endとかだよ
967デフォルトの名無しさん (ワッチョイ b1d0-o7DB)
2019/12/01(日) 20:44:53.15ID:wgaB7PE60 ActiveSheet.Range("A1") = "TEST"
とか
str = ActiveSheet.Range("A1")
とかの()内のことを言っているんだろうか?
とか
str = ActiveSheet.Range("A1")
とかの()内のことを言っているんだろうか?
968デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 21:06:45.20ID:qadFHjVDx969デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 21:14:55.98ID:Mv7XM2680 >>968
プロパティの引数に()いるの?に対してその答えはおかしい
プロパティの引数に()いるの?に対してその答えはおかしい
970デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 21:23:50.92ID:qadFHjVDx971デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 21:51:43.86ID:lg6qJlYj0972デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 22:00:59.47ID:qadFHjVDx973デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 22:13:02.79ID:Mv7XM2680 >>971
設定に引数がなんで必要ないの??
設定に引数がなんで必要ないの??
974デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 22:16:58.66ID:Mv7XM2680 アクセサ VBA
はい、なんもヒットしません
初心者に解説する場合、専門用語を使うってどうなの?
はい、なんもヒットしません
初心者に解説する場合、専門用語を使うってどうなの?
975デフォルトの名無しさん (ワッチョイ 9201-MhVQ)
2019/12/01(日) 22:25:27.99ID:Enyr5Fgf0 プロパティに引数持てる言語はVB系の言語しかないのでそういうもんだと思うしかないような気がする
976デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 22:28:21.62ID:Mv7XM2680 プロパティに引数もてるとか持てないとかはっきりしろよ…
977デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 22:29:04.82ID:lg6qJlYj0978デフォルトの名無しさん (ワッチョイ 9279-luhV)
2019/12/01(日) 22:32:32.45ID:pJZuHPp00 Range COMオブジェクト デフォルトプロパティ
でぐぐると良いかも
でぐぐると良いかも
979デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 22:52:46.61ID:qadFHjVDx >>974
VBA アクセサで普通にヒットするぞ
VBA アクセサで普通にヒットするぞ
980デフォルトの名無しさん (ワッチョイ b1f1-uW/g)
2019/12/01(日) 23:25:29.33ID:19U1wNi50 >>979
「汗臭」で検索してないか?
「汗臭」で検索してないか?
981デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 23:43:26.99ID:lg6qJlYj0982デフォルトの名無しさん (ワッチョイ b1f1-uW/g)
2019/12/01(日) 23:46:59.48ID:19U1wNi50 >>981
なんだとこのツルッパゲ!
なんだとこのツルッパゲ!
983デフォルトの名無しさん (ワッチョイ 8101-MhVQ)
2019/12/01(日) 23:49:23.02ID:J+qwPBxd0 グラサンのハゲはここにこないのー?
984デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/02(月) 06:20:27.87ID:jajTU6Llx このあたりの話は自分でクラスを作ったことがなければ分からないと思う
ともあれ、質問者の意図は引数付きのプロパティ式で丸括弧を省略できるかどうかという話なんだろうから、出来ないという結論で締めて終わり
要するにRange("A1")をRange "A1" とは書けない
これだとRangeという名前のSubプロジージャに引数"A1"を与えるという全くデタラメな構文になる
ともあれ、質問者の意図は引数付きのプロパティ式で丸括弧を省略できるかどうかという話なんだろうから、出来ないという結論で締めて終わり
要するにRange("A1")をRange "A1" とは書けない
これだとRangeという名前のSubプロジージャに引数"A1"を与えるという全くデタラメな構文になる
985デフォルトの名無しさん (アウアウウー Sacd-W09L)
2019/12/02(月) 10:25:16.60ID:9b18ESq8a hage("A1")
986デフォルトの名無しさん (ワッチョイ b1f1-uW/g)
2019/12/02(月) 12:07:45.41ID:b+6W/5Or0 Tsuruppage("A1")
987デフォルトの名無しさん (スッップ Sdb2-iiDQ)
2019/12/02(月) 12:58:25.24ID:bEJSdplkd 初心者にとって感覚的に分かりやすいのは戻りを使う場合はカッコを使う。
戻りを使わない場合はカッコを使わない。
Call文だけ例外でカッコを使う。
で良いんじゃね?
戻りを使わない場合はカッコを使わない。
Call文だけ例外でカッコを使う。
で良いんじゃね?
988デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/02(月) 20:27:37.88ID:HFZWrDUD0989デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/02(月) 20:40:04.97ID:4BXx3P/Mx990デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/02(月) 20:41:20.57ID:4BXx3P/Mx991デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/02(月) 21:03:22.49ID:HFZWrDUD0992デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/02(月) 21:21:14.86ID:4BXx3P/Mx993デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/02(月) 21:52:36.19ID:HFZWrDUD0 Cells(i, j).Borders(xlDiagonalDown).LineStyle = xlInsideHorizontal
わかりやすくな
プログラム初心者でもわかるように解説しろ
ボーダーには()でラインスタイルには=
どちらもプロパティなはず
なんで?
どれがなにの戻り値なの?ってのを
主語がなかったりテキトーなカタカナでごまかしてるのおおすぎ
わかりやすくな
プログラム初心者でもわかるように解説しろ
ボーダーには()でラインスタイルには=
どちらもプロパティなはず
なんで?
どれがなにの戻り値なの?ってのを
主語がなかったりテキトーなカタカナでごまかしてるのおおすぎ
994デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/02(月) 22:05:27.19ID:gEmwbuWH0 日本語崩壊してて草
995デフォルトの名無しさん (ワッチョイ 8101-MhVQ)
2019/12/02(月) 22:05:27.56ID:h5Kj2a0d0 北海道でスーパーハゲをしてるグラサンのおっさんこないのー?
996デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/02(月) 22:13:40.36ID:4BXx3P/Mx LineStyleプロパティは引数の指定を要求されないプロパティだから()による引数指定は要らない
かつ、Linestyleプロパティは値の読み取りの他に値の設定も可能なプロパティなので、代入演算子の = でxlLineStyle列挙体の定数を設定することにより、罫線の書式を設定できる
プロパティだから()が必要なんだとか=が必要なんだとかっていう単純な捉え方は理解の妨げになるからやめた方がよい
引数による要素の指定を要求/許容しているのか、値の読み取りだけでなく値の設定も出来るのかといった個々のプロパティの仕様の違いにより、式の書き方が変わるだけ
かつ、Linestyleプロパティは値の読み取りの他に値の設定も可能なプロパティなので、代入演算子の = でxlLineStyle列挙体の定数を設定することにより、罫線の書式を設定できる
プロパティだから()が必要なんだとか=が必要なんだとかっていう単純な捉え方は理解の妨げになるからやめた方がよい
引数による要素の指定を要求/許容しているのか、値の読み取りだけでなく値の設定も出来るのかといった個々のプロパティの仕様の違いにより、式の書き方が変わるだけ
997デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/02(月) 22:16:41.89ID:gEmwbuWH0 ってかこの一連の問題、すげー難しいよ
初心者を自覚してるならあまり深く考えないほうが良いと思う
得るものは少ない、ぱっと書き方だけ覚えてどんどん次へ進んだほうがいいような
初心者を自覚してるならあまり深く考えないほうが良いと思う
得るものは少ない、ぱっと書き方だけ覚えてどんどん次へ進んだほうがいいような
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- アメリカ、入国時に「日本人を含む外国人観光客の最大5年分のSNS履歴の提出」義務化 過去10年間に使用のメールアドレスや電話番号等も [Hitzeschleier★]
- 【おこめ】「有能だったんじゃ」おこめ券で批判殺到の鈴木農水大臣…ネットでは前任の“進次郎再評価” [ぐれ★]
- 【中国外務省】日本への渡航自粛を再度呼びかけ 今度は「地震発生」を理由に [ぐれ★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★3 [Hitzeschleier★]
- 【芸能】デパートで見つけたランドセルが衝撃価格! つまみ枝豆「どこかで規制しないと」に共感の声殺到 「全て同感」「高すぎます」★2 [冬月記者★]
- 【MLB】ダルビッシュの息子・ショウエイが大学チームに所属決定 「野球IQを持っている」と監督 183センチ、86キロの恵まれた体形 [冬月記者★]
- 日本人、世界で最もブランドに興味なし🇯🇵 [462275543]
- 【悲報】たぬかなが渡邊渚を壮絶バッシング 「グラビア出したあたりから臭いな~と思ってたが激臭になってたわ。中居は悪くない」 [455031798]
- 【悲報】鈴木農水大臣、国民から「こいつひょっとしてアホなんじゃね?」と思われ始めてしまうwww [793117252]
- 日本に旅行来てる中国人減ったとか言ったの誰だよ
- 日本人、タイとカンボジアの戦争に興味がなさすぎる。高市もなんか言えよ [811796219]
- 自閉症児の父親「中絶しておけば良かった。 家族が欲しかったのに、手に入れたのは人間たまごっち」 [777114754]
