!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
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ d3d0-EPXH)
2019/09/16(月) 19:34:59.04ID:emfTAhXr0952デフォルトの名無しさん (アークセー 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 ってかこの一連の問題、すげー難しいよ
初心者を自覚してるならあまり深く考えないほうが良いと思う
得るものは少ない、ぱっと書き方だけ覚えてどんどん次へ進んだほうがいいような
初心者を自覚してるならあまり深く考えないほうが良いと思う
得るものは少ない、ぱっと書き方だけ覚えてどんどん次へ進んだほうがいいような
998デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/02(月) 22:17:27.68ID:4BXx3P/Mx WorksheetオブジェクトのCellsプロパティなどは引数なしでも引数ありでも使用できるし、=で値も設定できる
()の要不要とか=を用いた代入の可否なんてプロパティの仕様によるとしか
()の要不要とか=を用いた代入の可否なんてプロパティの仕様によるとしか
999デフォルトの名無しさん (ワッチョイ f602-FWG3)
2019/12/02(月) 22:20:20.67ID:ONNaKUnx0 >>993
こう説明したらわかる?
Cellsの戻り値に対して.Borders〜〜って事
Borders(xlDiagonalDown)の.LineStyleに対して = xlInsideHorizontalって事
こう説明したらわかる?
Cellsの戻り値に対して.Borders〜〜って事
Borders(xlDiagonalDown)の.LineStyleに対して = xlInsideHorizontalって事
1000デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/02(月) 22:20:29.46ID:HFZWrDUD0 >>996
引数の要求をされないプロパティ??
linestyleだけではエラーになるのでは?
レンジのラインスタイルです!だけは意味不明でしょ
値の設定?読み取り?
設定 罫線を引く?
読み取り ???
つまりどういうこと?
定数を設定??
bordersの引数も定数では?
引数の要求をされないプロパティ??
linestyleだけではエラーになるのでは?
レンジのラインスタイルです!だけは意味不明でしょ
値の設定?読み取り?
設定 罫線を引く?
読み取り ???
つまりどういうこと?
定数を設定??
bordersの引数も定数では?
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 77日 2時間 45分 30秒
新しいスレッドを立ててください。
life time: 77日 2時間 45分 30秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 自民・麻生太郎 副総裁 石破政権の1年は「どよーん」 高市政権の発足で「何となく明るくなった」「世の中のことが決まり動いている」 [Hitzeschleier★]
- 東京都「都民の税金1.5兆円が国に奪われている」「全国に分配されている」に地方民ブチギレ [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 【27歳会社員】「自慰行為に使うために」コインランドリーの乾燥機から24歳女性の下着など計11点(時価8万2080円相当)盗んだ疑い [nita★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- トランプ、G7に代わるcore 5を発表 [805596214]
- 為末大「ラーメン屋の行列を、年寄りが1万円渡してきて順番譲ってくれと言ったら? 答えられない問題だよ。」 [592058334]
- 麻生太郎が石破政権の1年を酷評「どよーんとして何も動かない感じだったな。それに引き換え高市政権は物事が動いている」 [597533159]
- 【速報】室井佑月、米山隆一との離婚を決意wwwwwwwwwwwwwwwwwwww [802034645]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★4
- 官僚「台湾有事についての質問か、『政府として逐一答えない』と…(カタカタカタ)」高市「私1人で答弁できるわよ!」 [972432215]
