1 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 08:42:15.37 ID:KskL7bEXd.net] !extend:checked:vvvvv:1000:512 ↑同じ内容を2行貼り付けるナリ ExcelのVBAに関する質問スレナリ コード書き込みや作成依頼もOKナリ ※前スレ Excel VBA 質問スレ Part70 https://mevius.5ch.net/test/read.cgi/tech/1616072923/ Excel VBA 質問スレ Part71 https://mevius.5ch.net/test/read.cgi/tech/1621914481/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
952 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 21:38:37.34 ID:2Fxd4w670.net] >>946 そういう問題じゃないんですよ
953 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 21:40:05.19 ID:TT1mfVcaM.net] >>947 だからどういう問題かを書けないなら黙ってなよ
954 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 21:43:02.76 ID:2Fxd4w670.net] >>948 動くかどうかという話ではないので論点はそこではありません
955 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 22:07:47.67 ID:rk4qX9ha0.net] 動かすだけならグローバルに配列つくればいいわな
956 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 22:16:10.75 ID:cbJJzriEM.net] >>949 ああ説明できないのかしたくないのかは知らんけどそういうことしか書けないのな まあ君はそれでいいと思うよw
957 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 22:19:16.50 ID:rrgK5Yqx0.net] >>951 可読性の面もあるし、変数名の意味付けの面もあるだろう Rangeって書かれても、どんな目的で何のRangeを変数に入れたのかが分かるように書くのが綺麗なコード 知らんけど
958 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 22:20:43.81 ID:oDrMz70O0.net] 難癖つけててワロタ
959 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 22:37:14.80 ID:sbKq7iyBM.net] >>952 > Rangeって書かれても、どんな目的で何のRangeを変数に入れたのかが分かるように書くのが綺麗なコード 例えば指定された範囲にいくつかの装飾を適用する Private Sub 装飾(Range As Range) With Range ... End With End Sub 君なら引数の名前をどうする?
960 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 22:56:49.10 ID:rrgK5Yqx0.net] Excelの装飾ってのがよくわからんけど、書式のこと? 関数っぽい書き方してるからこんなんでいいんじゃないの Private Sub SetFormat_to_TargetRange(ByVal TargetRange As Range) With TargetRange ... End With End Sub
961 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 23:04:12.45 ID:k/ICsAd30.net] 文脈的に明らかならRange As Rangeいいと思うけどね。 あと、「Rangeオブジェクト」である以上の情報がない変数や引数に対して無理やり名づけようとしても、 結局TargetRange的な抽象的な名前になっちゃう事もある。
962 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 23:06:14.39 ID:k/ICsAd30.net] >>955 流石にそれは冗長すぎて逆に読みにくいだろ・・・
963 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 23:11:20.56 ID:LHgBQKs+0.net] >>954 そこはtarget as rangeでいいと思う 一番読みやすい 自分しか使わない場合でもrange as rangeは使わないかな vbaの場合、引数なしの関数と変数って見分けが付きにくい ってかなんだこれエラーになるぞ Sub foo() Dim Calculate As Long Calculate End Sub これはエラーにならない Sub foo() Dim Calculate As Long End Sub これもエラーにならない Sub foo() Calculate End Sub 変数名と関数名がかぶると変数が優先される? まぁ何にしろ、こんな事は避けたいから俺はかぶらないようにするけどね
964 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 23:15:36.34 ID:rrgK5Yqx0.net] 多少長くても要素要素は省いちゃメンテが大変になるから多少冗長でも構わないスタンスで 単語の簡素化はしてもいいなら関数名をSetFmt_TgtRngとかにするかもね あとそもそも、挙げられた例は不適切では? 今回話題になってるのは呼び出し先の(汎用的に使える)関数での変数名ではなくて、呼び出し元での変数名かと
965 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 23:25:05.99 ID:k/ICsAd30.net] >>958 再定義(シャドーイング)されてるだけ。 親スコープから継承されてる宣言名(今回で言えばオブジェクト名.Calculate)を再定義すると、定義が上書きされる。 Calculateは整数として再定義されたので、そのスコープではCalculateだけなら暗黙的に整数になる。 明示的に「オブジェクト名.Calculate」とすればメソッドとしてのCalculateを使用できる
966 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 00:00:09.96 ID:qqZDVqkP0.net] personal.xlsbを複数の端末で共有したいので共有フォルダーにおいています. XLSTARTのpersonal.xlsbは削除して共有フォルダーのpersonal.xlsbへのショートカットをおいています. エクセルが起動するときにpersonal.xlsbを開くかどうか毎回聞いてきます (セキュリティのマクロの設定は「警告を表示して全てのマクロを無効にする」です) 毎回開くを押すのが面倒なので共有フォルダーのpersonal.xlsbだけ常時開くような設定はできないでしょうか?
967 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 07:08:07.40 ID:M0KgNEQw0.net] >>960 ありがとうございます こんな機能あったのか、名前被るとエラーになると思って避けてたわ
968 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 08:32:29.27 ID:uUbGGWZvM.net] >>962 スコープを持った言語ではたいてい内側のスコープが優先されるよ 中にはあえてエラーにする言語もあるけど https://docs.microsoft.com/ja-jp/dotnet/csharp/misc/cs0136
969 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 09:37:25.87 ID:3jGknNChp.net] >>955 関数の大きさにもよるな 小さくてすぐ上に引数設定して 型が見えてるようなのはvalueでいいと思う 少しごちゃごちゃして見辛いのは targetRangeでいいと思うし 更にもう少し大きくなって業務的な 意味を持つようになったらその名前付ければ いいんじゃないかな
970 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 10:18:08.93 ID:JYcIgh+V0.net] >>936 です 質問用に最少構成にする時点でもう少し変数名に気を付けるべきでした 変な流れになってすみません
971 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 10:49:48.68 ID:eXg+YAmHM.net] >>964 Valueはないわ…
972 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 12:17:24.93 ID:qqZDVqkP0.net] >>966 そうだよな。value指定ではフォーマット変更は無理だよな
973 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 13:14:28.26 ID:GnKWsobMa.net] Valueだけはねぇわ targetとtmpとi・j・kとrくらいしか意味の薄い変数は使わないようにしないと
974 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 13:57:33.58 ID:SrjYrNmNM.net] m,nも
975 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 14:37:20.09 ID:M0KgNEQw0.net] i・j・k 顔文字かと思った
976 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 11:12:03.90 ID:up1UF/mUp.net] valueがダメだと言ってる奴は恐らくプロパティとか プロパティの使えない他言語とか使ったことのない井の中の蛙という奴だな VBAしかやってないジジイにはよくあること
977 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 11:42:37.67 ID:igJhGb/40.net] >>971 君、韓国人?
978 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 11:48:24.82 ID:3Dv8YdNb0.net] 韓国をばかにするな!ITに関しては日本より進んでいるぞ
979 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 12:10:04.57 ID:tsfiI8be0.net] どこ見て言ってんだか
980 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 12:15:32.69 ID:3Dv8YdNb0.net] ここ見ててんだよ
981 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 12:55:49.25 ID:xXC+mfefM.net] >>971 またチンケなマウント取りが来たなw >>954 の引数としてValueはないわって話 値としての用途ならValueもよく使うよ
982 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 13:36:49.25 ID:5xdi3uAF0.net] オブジェクト型のRange型なのに、Valueを変数名にするのはVBAの常識的にNGなのは自明
983 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 14:09:17.30 ID:3Dv8YdNb0.net] >>977 > Valueを変数名にする 変数名の適否ではなくって、ByValで値引き渡しにしたらもとの範囲のフォーマットを変更できないという話じゃないのか?
984 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 16:11:41.17 ID:INS7ikYU0.net] >>978 今問題にしてたのは変数(引数)名であって引数の渡し方ではないのだが 参照型と参照渡しとちゃんと区別して理解してる?
985 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 16:21:24.92 ID:aVK/EU7g0.net] 元の元は>>936 (私)でdim range as rangeに対してsetしたのですが 引数としてrange as rangeとされている状態でsetする事なんてあるのですか? 普通は無いなら途中から引数の話になるのもずれてません?
986 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 16:31:54.19 ID:pHewVqE+0.net] そう言えばデコレーターパターンとかでは valueはよく見るけどreferって見ないよね なんでだろ?
987 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 16:37:26.61 ID:3Dv8YdNb0.net] >>979 955の話じゃないのか? 誤解してたらすまん。
988 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 18:56:51.30 ID:up1UF/mUp.net] >>981 それは引数が何かの値という意味で プログラム的な参照とか値とかは関係ないからさ
989 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 19:28:40.93 ID:qUARoTjRM.net] >>980 お前さんの普通がわからんけど、複数のレンジを返したいならそういうケースもあると思うよ そもそも>>952 は名前付けの話でSet云々の話に限定はしてないと思うし
990 名前:デフォルトの名無しさん [2021/09/12(日) 21:17:53.40 ID:K6Dv6PKH0.net] ttps://whois.nic.ad.jp/cgi-bin/whois_gw?key=182.22.16.251&codecheck-sjis=%E3%81%AB%E3%81%BB%E3%82%93%E3%81%AD%E3%81%A3%E3%81%A8%E3%82%8F%E3%83%BC%E3%81%8F%E3%81%84%E3%82%93%E3%81%B5%E3%81%89%E3%82%81%E3%83%BC%E3%81%97%E3%82%87%E3%82%93%E3%81%9B%E3%82%93%E3%81%9F%E3%83%BC&submit= に表示されているネットワーク名「YAHOO-NET」を取得しようとしているのですが、 Cells(1, 2) = objIE.Document.getElementsByTagName("pre").innerText ではメソッドがサポートされいないとエラー表示されます。 何がいけないのでしょうか?
991 名前:名無し募集中。。。 mailto:sage [2021/09/12(日) 21:29:23.70 ID:Nc1wnmSN0.net] 普段使ってないから問題点がこれ意外にもあるかわからないが Cells(1, 2) = objIE.Document.getElementsByTagName("pre")(1).innerText これでどう?
992 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 21:29:29.14 ID:wxf2x8Lb0.net] VBAとJavaScriptが、混ざっちゃった感じかな
993 名前:デフォルトの名無しさん [2021/09/12(日) 22:10:03.90 ID:UcZJH98c0.net] n時間後にエンターキーを押すプログラムってどう作るんだ?初心者にもわかりやすく誰か教えて
994 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 22:16:01.50 ID:wxf2x8Lb0.net] 「n時間後にアラームを設定して、鳴ったらENTERを押せ!」 と、命令する
995 名前:デフォルトの名無しさん [2021/09/12(日) 22:27:13.14 ID:K6Dv6PKH0.net] >>986 ありがとうございます。 「オブジェクト変数がセットされていません」というエラーメッセージが出ており、検証はできておりませんが、いけそうな気がします。 ページ遷移したらobjIE.Documentに遷移先の情報が自動で設定されないのかもしれません。
996 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 22:28:25.73 ID:8PbYCWHKH.net] >>988 基本はこうだけど、このままだとタイマーを仕掛けたのを忘れてて、ほかの作業をしてる時に急にEnterが押されてびっくりすると思うよ Sub n時間後にEnterを押す() n = 1 'n時間を指定 n時間後 = Now + TimeValue(n & ":00:00") 'n時間後が何時何分か計算する Do DoEvents Loop Until Now >= n時間後 'n時間誤まで待つ SendKeys "~" 'Enterを押す End Sub
997 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 23:27:46.85 ID:Nc1wnmSN0.net] >>990 (1)じゃなかった (0)だった
998 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 01:05:28.69 ID:gLuGYsXi0.net] >>991 せめてOnTime使えよ
999 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 01:09:51.01 ID:DeEefxbAd.net] OnTimeはあとからタイマーの設定を確認したり停始する方法がないから使い勝手が悪すぎるのがなあ
1000 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 01:34:41.43 ID:/cjB8lcQM.net] 配列に保存しとくか シートに書き出しておく それを元に確認したりキャンセルする
1001 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 02:28:08.29 ID:SNtxNYpLd.net] >>990 URLはここまででいいんだよ https://whois.nic.ad.jp/cgi-bin/whois_gw?key=182.22.16.251
1002 名前:デフォルトの名無しさん [2021/09/13(月) 07:15:43.89 ID:oNrWMPyP0.net] >>992 , 996 ありがとうございます!
1003 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 07:30:13.42 ID:GNx0xRRz0.net] つぎ https://mevius.5ch.net/test/read.cgi/tech/1631485799/l50
1004 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 07:41:47.37 ID:KCvhkZmap.net] >>998 うむ、ご苦労
1005 名前:デフォルトの名無しさん [2021/09/13(月) 09:30:38.14 ID:Kz73eSbEF.net] 1000ならコロナ収束
1006 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 57日 0時間 48分 23秒
1007 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています