!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:emfTAhXr0865デフォルトの名無しさん (アウアウエー Sae3-X/je)
2019/11/27(水) 18:34:34.70ID:Cbbx0Ne3a コードよりメモの方が長い
866デフォルトの名無しさん (ドコグロ MM63-hZ32)
2019/11/27(水) 19:32:47.73ID:/ZvfNNOFM 1週間後の自分は既に他人
867デフォルトの名無しさん (ワッチョイ 81ce-/L9V)
2019/11/27(水) 19:44:22.70ID:zplzdTf80 プログラミングの実習で教授が言ってたわ
明日の自分は他人だから、いつでも他人が見てもわかるように書けって
明日の自分は他人だから、いつでも他人が見てもわかるように書けって
868デフォルトの名無しさん (アウアウウー Sa9d-rqK9)
2019/11/27(水) 19:53:39.35ID:stsrz9x1a 昨日のことも覚えてない
>>868
昨日の昼飯がなにか?なんて思い出せなくなりました…
昨日の昼飯がなにか?なんて思い出せなくなりました…
870デフォルトの名無しさん (ワッチョイ 69f1-hgyP)
2019/11/27(水) 20:35:10.07ID:fWLksagp0 >>870
ビタミン剤をしこたま飲んでるんですけど、やっぱりだめですかね…
ビタミン剤をしこたま飲んでるんですけど、やっぱりだめですかね…
872デフォルトの名無しさん (ワッチョイ 1301-7uad)
2019/11/27(水) 20:47:12.82ID:Bgz7f5eR0 >>867
集中してるとそこまで対処してるか!みたいなのが書ける時があって
後から見てなんでこんなのあるんだ?って思うことがある
同じことやろうと思っても出来なかったり
だから自分に対してのコメント必須だわ
集中してるとそこまで対処してるか!みたいなのが書ける時があって
後から見てなんでこんなのあるんだ?って思うことがある
同じことやろうと思っても出来なかったり
だから自分に対してのコメント必須だわ
873デフォルトの名無しさん (ワッチョイ 69d0-BEIG)
2019/11/27(水) 21:24:50.75ID:RNITUjXe0 昨日の自分は今日の敵
今日の自分は明日の(自分にとっての)敵
今日の自分は明日の(自分にとっての)敵
874デフォルトの名無しさん (ワッチョイ c1da-pyDD)
2019/11/27(水) 21:25:04.01ID:Htaq5k6U0875デフォルトの名無しさん (ワッチョイ b1f1-uW/g)
2019/11/28(木) 00:11:11.99ID:SmApZ4N10 VBAでChromeのタブブラウザを思い通りに操作することってできます?
IEのタブブラウザも思い通りに操作する方法も知りたいけど。
IEのタブブラウザも思い通りに操作する方法も知りたいけど。
876デフォルトの名無しさん (ワッチョイ 9279-luhV)
2019/11/28(木) 01:30:16.44ID:65DPFBPU0 Seleniumでもタブ操作は無理だから無理なんじゃねーの
877デフォルトの名無しさん (ワッチョイ 922c-Ql8R)
2019/11/28(木) 01:58:43.77ID:WsOSEkue0 Ruby で、Selenium Webdriver を使っているけど、タブ移動は出来る!
url_0 = "URL 0"
url_1 = "URL 1"
driver.navigate.to url_0 # url_0 を開く
driver.execute_script( "window.open()" ) # 新しいタブを開く
driver.switch_to.window( driver.window_handles.last ) # 新しいタブへ移動する
driver.navigate.to url_1 # url_1 を開く
all_handles = driver.window_handles # すべてのタブ
driver.switch_to.window( all_handles[ 0 ] ) # url_0 へ移動する
url_0 = "URL 0"
url_1 = "URL 1"
driver.navigate.to url_0 # url_0 を開く
driver.execute_script( "window.open()" ) # 新しいタブを開く
driver.switch_to.window( driver.window_handles.last ) # 新しいタブへ移動する
driver.navigate.to url_1 # url_1 を開く
all_handles = driver.window_handles # すべてのタブ
driver.switch_to.window( all_handles[ 0 ] ) # url_0 へ移動する
878877 (ワッチョイ 922c-Ql8R)
2019/11/28(木) 02:00:57.37ID:WsOSEkue0 driver.execute_script( "window.open()" ) # 新しいタブを開く
driver.execute_script で、JavaScript のソースコードを書ける
driver.execute_script で、JavaScript のソースコードを書ける
879デフォルトの名無しさん (スッップ Sdb2-iiDQ)
2019/11/29(金) 13:28:48.35ID:o1brOXQcd >>874
以前の挙動ってセル罫線は見えるけどセル自体は透過して、下への入力が出来るというものだった記憶があるんだけど、そういう動作を望んでるってことだよね。
単純にセル範囲全体、もしくは部分を完全透過するって意味じゃ無いよね。
セル範囲、もしくは部分を完全透過して下へ入力出来るっていうのなら簡単に実現出来ると思う。
試して無いけど。
以前の挙動ってセル罫線は見えるけどセル自体は透過して、下への入力が出来るというものだった記憶があるんだけど、そういう動作を望んでるってことだよね。
単純にセル範囲全体、もしくは部分を完全透過するって意味じゃ無いよね。
セル範囲、もしくは部分を完全透過して下へ入力出来るっていうのなら簡単に実現出来ると思う。
試して無いけど。
880デフォルトの名無しさん (ワッチョイ adda-WKXI)
2019/11/29(金) 19:37:43.44ID:Y7Z9cnLQ0881デフォルトの名無しさん (スッップ Sdb2-iiDQ)
2019/11/29(金) 21:00:27.22ID:o1brOXQcd >>880
SetLayeredWindowAttributesは多分無理だと思う。
使ったことないけどUpdateLayeredWindowも同じかな?
この種のAPIは諦めて、リージョン使ってウィンドウの形状をくり抜いた形に変形する方法を使って出来たけど、色指定とかも出来ないし、くり抜いた部分は問答無用で透過する。
当然、罫線も透過する。
それからブックのウィンドウを移動すると元に戻る。
こっちはサブクラスでどうにか出来なかったかな。
くり抜く部分は右端列、下端行の見切れる所を正確に取得するのが面倒くさい。
指定セル範囲なら簡単なんだけど。
SetLayeredWindowAttributesは多分無理だと思う。
使ったことないけどUpdateLayeredWindowも同じかな?
この種のAPIは諦めて、リージョン使ってウィンドウの形状をくり抜いた形に変形する方法を使って出来たけど、色指定とかも出来ないし、くり抜いた部分は問答無用で透過する。
当然、罫線も透過する。
それからブックのウィンドウを移動すると元に戻る。
こっちはサブクラスでどうにか出来なかったかな。
くり抜く部分は右端列、下端行の見切れる所を正確に取得するのが面倒くさい。
指定セル範囲なら簡単なんだけど。
882デフォルトの名無しさん (スッップ Sdb2-iiDQ)
2019/11/29(金) 21:05:43.61ID:o1brOXQcd 元々、無理矢理やろうとしてたのは半透明にしてその描画をメモリに取得してから完全透明にして、デスクトップに取得した描画を書き込むことを考えたけど、再描画で無茶苦茶チラつきそうで断念した。
883デフォルトの名無しさん (ワッチョイ 8101-MhVQ)
2019/11/29(金) 21:42:27.36ID:fEFTOoHB0 北海道のハゲはここにこないのー?
884デフォルトの名無しさん (スッップ Sdb2-iiDQ)
2019/11/29(金) 23:10:37.96ID:o1brOXQcd ググレばサンプルや答えが見つかるとか言ってた奴がいたけど、ググってどうにかなるようなレベルの低いものは、問題にすらならないわけでね。
わざわざ覚えるようなことをしてないだけでググレば答えが見つかるのが分かってるんだよ。
一方、問題になるようなレベルの高いものはググっても答えが見つかることは殆ど無いわけだ。
わざわざ覚えるようなことをしてないだけでググレば答えが見つかるのが分かってるんだよ。
一方、問題になるようなレベルの高いものはググっても答えが見つかることは殆ど無いわけだ。
885デフォルトの名無しさん (ワッチョイ 655f-abYQ)
2019/11/30(土) 16:10:24.85ID:gvdsBQuZ0 最近独学ではじめたんだがググっても出ないから質問させてくれ
if の条件式をセルから読み取ることできない?
例えば
セルA1に1+1=2って入力してあって
VBAで
if cells(1,1).value then
end if
的なことを実行したいんだが・・・
if の条件式をセルから読み取ることできない?
例えば
セルA1に1+1=2って入力してあって
VBAで
if cells(1,1).value then
end if
的なことを実行したいんだが・・・
886デフォルトの名無しさん (ワッチョイ adda-WKXI)
2019/11/30(土) 16:18:47.86ID:zymER4tP0 イミワカラン。
=1+1=2ならまだわかるが。
=1+1=2ならまだわかるが。
887デフォルトの名無しさん (ワッチョイ b1f1-uW/g)
2019/11/30(土) 16:26:59.80ID:PE5ncLuo0 セルA2には1+1=3って入力してあるんです
888デフォルトの名無しさん (ブーイモ MMa6-xiND)
2019/11/30(土) 16:42:55.04ID:CChXYwU6M if Application.Evaluate(cells(1,1).value) then
end if
は?
end if
は?
889デフォルトの名無しさん (ワッチョイ 655f-abYQ)
2019/11/30(土) 17:14:03.21ID:gvdsBQuZ0890デフォルトの名無しさん (ワッチョイ 0dce-3RYV)
2019/11/30(土) 18:09:08.07ID:5XJ0vNla0891デフォルトの名無しさん (ワッチョイ b57c-EcXK)
2019/11/30(土) 18:17:54.58ID:c6PsAIQc0 >>885
そのコードで読み取れるが、=1+1=2と入れてるなら常にTrueにしかならないと思うぞ
そのコードで読み取れるが、=1+1=2と入れてるなら常にTrueにしかならないと思うぞ
892デフォルトの名無しさん (ワッチョイ f602-FWG3)
2019/11/30(土) 18:52:44.66ID:Vhhj6JxE0 コードで条件指定するんじゃなくて
セルに条件書いてそれで判定したいって事だよね
セルに条件書いてそれで判定したいって事だよね
893デフォルトの名無しさん (ワッチョイ 655f-abYQ)
2019/11/30(土) 18:58:56.97ID:gvdsBQuZ0894デフォルトの名無しさん (スプッッ Sd12-abYQ)
2019/11/30(土) 19:00:48.42ID:vHVqnqrEd 文字列(1+2)*3を計算して数値にしてくれる方法ないかね
895デフォルトの名無しさん (ワッチョイ b57c-EcXK)
2019/11/30(土) 19:15:08.08ID:c6PsAIQc0 >>894
試してないけどevaluateで出来るんじゃないか?
試してないけどevaluateで出来るんじゃないか?
896デフォルトの名無しさん (ワッチョイ 0dce-3RYV)
2019/11/30(土) 19:34:42.91ID:5XJ0vNla0 セルに数式として入れる
897デフォルトの名無しさん (エムゾネ FFb2-b5WD)
2019/11/30(土) 21:28:15.08ID:lXL2/s51F Cells(1,1).Textでは数式読み取れなかったっけ
898デフォルトの名無しさん (ワッチョイ 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なんだろうけど
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 [蚤の市★]
- 【ド軍】山本由伸、WBC出場を決断!ドジャースが本人の意向を尊重、佐々木朗希はチームが故障歴を懸念で不参加 [鉄チーズ烏★]
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 【テレビ】粗品「THE W」バッサリ「おもんない、レベル低い」審査員就任で「日テレが“血の海”に…」 [湛然★]
- 女も昔は精子だったんだな
- 【未確認生ハメ情報】安倍晋三が高市早苗氏とチョメチョメしていたという噂が囁かれる。 [928194223]
- 【画像】地方局の女子アナさん、朝からエッチなおパンツを全国放送されてしまう😍
- 最近朝に暇だからラヴィット!見てるけど(´・ω・`)
- 【悲報】女さん「ハローワークで仕事を探してる3-40代の中年男性いるでしょ。あれ何?」 [483447288]
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
