!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
Excel VBA 質問スレ Part76
https://mevius.5ch.net/test/read.cgi/tech/1651339421/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part77
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (TW 0H42-j7SA)
2022/07/17(日) 07:07:35.59ID:tS4zKdphH463デフォルトの名無しさん (ワッチョイ 59da-Xdj5)
2022/09/01(木) 15:07:23.09ID:xiyCUJHG0 ニートならロン毛にしろよ
464デフォルトの名無しさん (ワッチョイ 4666-JjaS)
2022/09/01(木) 19:17:21.60ID:Xg3rwxDQ0 Range型と配列の違いが後一歩わからないのですが、
Sheet1にA1=10,A2=20,A3=30,B1=40,B2=50,B3=60....みたいにしてar(2,2)と近い感じにしてます。
Sub Sample1()
Dim ar(2, 2) As Variant
ar(0, 0) = 10
ar(1, 0) = 20
ar(2, 0) = 30
ar(0, 1) = 40
ar(1, 1) = 50
ar(2, 1) = 60
ar(0, 2) = 70
ar(1, 2) = 80
ar(2, 2) = 90
Debug.Print TypeName(ar)
Debug.Print TypeName(Worksheets("Sheet1").Range("A1:C3"))
End Sub
arはvariant型の配列でWorksheets("Sheet1").Range("A1:C3")はrange型のオブジェクトになるんですよね。
感覚的にはどちらも配列を渡している気分なのですが、セル範囲参照のrangeだからrange型オブジェクトになるってだけですか?
Sheet1にA1=10,A2=20,A3=30,B1=40,B2=50,B3=60....みたいにしてar(2,2)と近い感じにしてます。
Sub Sample1()
Dim ar(2, 2) As Variant
ar(0, 0) = 10
ar(1, 0) = 20
ar(2, 0) = 30
ar(0, 1) = 40
ar(1, 1) = 50
ar(2, 1) = 60
ar(0, 2) = 70
ar(1, 2) = 80
ar(2, 2) = 90
Debug.Print TypeName(ar)
Debug.Print TypeName(Worksheets("Sheet1").Range("A1:C3"))
End Sub
arはvariant型の配列でWorksheets("Sheet1").Range("A1:C3")はrange型のオブジェクトになるんですよね。
感覚的にはどちらも配列を渡している気分なのですが、セル範囲参照のrangeだからrange型オブジェクトになるってだけですか?
465デフォルトの名無しさん (スプッッ Sd82-GCvl)
2022/09/01(木) 19:18:06.47ID:EeQXBP72d 馬鹿過ぎてやばい奴が来てる
466464 (ワッチョイ 4666-JjaS)
2022/09/01(木) 19:23:31.46ID:Xg3rwxDQ0 for each のinの後に配列をおいても、range型オブジェクトをおいても
同じように中身を取り出してくれるから混乱してしまったのかもしれません。
同じように中身を取り出してくれるから混乱してしまったのかもしれません。
467デフォルトの名無しさん (ワッチョイ 61da-6Yq+)
2022/09/01(木) 19:28:08.64ID:bYXIuDKK0 もし Dim ar(2, 2, 2) As Variant なら3次元の配列としか言いようがない
468デフォルトの名無しさん (ワッチョイ 06da-eq86)
2022/09/01(木) 20:43:50.82ID:QMR92n1t0 本人は切実なんだろうけどイマイチ何を理解しようとしているのかが汲み取れない。
とりあえず、シートは二次元配列みたいなものと思えばいいんじゃないかなぁ。
バリアント型の変数に範囲指定したrangeを代入したら配列が出来上がるんだから。。。
って、こういうの説明するのって余計に混乱させそうで怖いのよね。
とりあえず、シートは二次元配列みたいなものと思えばいいんじゃないかなぁ。
バリアント型の変数に範囲指定したrangeを代入したら配列が出来上がるんだから。。。
って、こういうの説明するのって余計に混乱させそうで怖いのよね。
469デフォルトの名無しさん (ワッチョイ 59da-Xdj5)
2022/09/01(木) 22:31:39.49ID:xiyCUJHG0 なんでそんな事やっているんだろう。。??
470デフォルトの名無しさん (ワッチョイ 0de6-NyG/)
2022/09/01(木) 23:45:17.73ID:7Zuj6Csb0 Rangeオブジェクトと配列、全く異質のものなのに同じ代入インターフェースがつかえるのが不思議なのでしょう
女学生は貧困で給食費すら払えないのに上級国民は交通費で200万円貰えるのですから
女学生は貧困で給食費すら払えないのに上級国民は交通費で200万円貰えるのですから
471デフォルトの名無しさん (ワッチョイ 868c-6eY1)
2022/09/02(金) 00:10:13.04ID:vXxCvmAd0472デフォルトの名無しさん (ワッチョイ ad2f-6Yq+)
2022/09/02(金) 03:22:55.43ID:XYWvvS0T0 >>464
オブジェクトにはデフォルトプロパティというのがあってな
オブジェクトを参照してるつもりでも、実はそのデフォルトプロパティを参照してるんだよ
Worksheets("Sheet1").Range("A1:C3")はRange型だが、
そのデフォルトプロパティは2次元配列なのだよ
オブジェクトにはデフォルトプロパティというのがあってな
オブジェクトを参照してるつもりでも、実はそのデフォルトプロパティを参照してるんだよ
Worksheets("Sheet1").Range("A1:C3")はRange型だが、
そのデフォルトプロパティは2次元配列なのだよ
473デフォルトの名無しさん (ワッチョイ 023e-y80L)
2022/09/02(金) 06:34:36.12ID:p8HOStyU0 ttps://www.tipsfound.com/vba/18014
このコードでcsvファイルをエクセルの指定のシートに取り込めますか?
このコードでcsvファイルをエクセルの指定のシートに取り込めますか?
474デフォルトの名無しさん (ワッチョイ 02d8-OFDU)
2022/09/02(金) 07:13:47.06ID:rviUcujq0 >>473
やってみて聞いてるの?自分でやるのが面倒臭いからとりあえず聞いてるだけ?
やってみて聞いてるの?自分でやるのが面倒臭いからとりあえず聞いてるだけ?
475デフォルトの名無しさん (ワッチョイ 4205-6Yq+)
2022/09/02(金) 07:18:17.22ID:K+fb6kZO0 最近のレベル低下には目を見張るものがあるな
476デフォルトの名無しさん (ワントンキン MM52-Pz8G)
2022/09/02(金) 07:25:48.67ID:+uzTYabFM 総合相談所で総スカンされた馬鹿だろ
477デフォルトの名無しさん (ワッチョイ 59da-Xdj5)
2022/09/02(金) 11:01:00.75ID:BYdQXtrB0 いや、そもそも何でそんな事やりたいのか??
という質問自体がさ
という質問自体がさ
478デフォルトの名無しさん (ワッチョイ 61da-AuBP)
2022/09/02(金) 12:33:00.40ID:MAC5jHq+0 よそのサイトなんだから作った奴にきけばいいのにと思う今日この頃
479デフォルトの名無しさん (ワッチョイ 59da-Xdj5)
2022/09/02(金) 14:51:15.82ID:BYdQXtrB0 ど正論出ました
終了
終了
480デフォルトの名無しさん (ワッチョイ 5f3e-NodX)
2022/09/03(土) 10:31:26.76ID:XL3e+/xJ0 >>476
あれ総スカンだったんですか?
外部データの取り込みでcドライブのファイルを取り込んでいるのに
そのエクセルのファイルを他の人にコピーして渡したら同じ場所にファイルを配置しているのにファイルが読み込めないって聞いただけなのに笑
あれ総スカンだったんですか?
外部データの取り込みでcドライブのファイルを取り込んでいるのに
そのエクセルのファイルを他の人にコピーして渡したら同じ場所にファイルを配置しているのにファイルが読み込めないって聞いただけなのに笑
481デフォルトの名無しさん (スフッ Sd7f-k3HK)
2022/09/03(土) 12:58:16.39ID:WuOEJ3Bid あっちでも総スカンだしここでも総スカンなんだからもういいでしょ
レベル低いよあんた
レベル低いよあんた
482デフォルトの名無しさん (ワッチョイ 7f8e-VPUc)
2022/09/03(土) 14:11:09.43ID:fgoOqg3v0 しつこい馬鹿
483デフォルトの名無しさん (ワッチョイ 07da-oTx6)
2022/09/04(日) 02:41:16.33ID:+4pXrWCU0 向こうの総合相談スレはこのスレと違って厳しい人ばかりだからな。
484デフォルトの名無しさん (ワッチョイ 5f3e-NodX)
2022/09/04(日) 17:26:08.83ID:nTptsQZA0 >>483
VBAのスレよりも質問スレは厳しい人ばかりなんですね
VBAのスレよりも質問スレは厳しい人ばかりなんですね
485デフォルトの名無しさん (ワッチョイ 07da-oTx6)
2022/09/04(日) 21:22:49.28ID:+4pXrWCU0 少しでも的外れな質問したら総スカンだからな。
初級者だろうが容赦ないのが向こう。
初級者だろうが容赦ないのが向こう。
486デフォルトの名無しさん (オッペケ Srbb-bBdM)
2022/09/04(日) 22:38:27.70ID:I+EDFKibr replace関数でワイルドカードを使用してるのですが、
うまく置換していくれないのでなぜですか?
やりたいこと A1セルのKKK1111というデータを2222に変換したい
replace("A1","*" & "K"& "*","2222" )
うまく置換していくれないのでなぜですか?
やりたいこと A1セルのKKK1111というデータを2222に変換したい
replace("A1","*" & "K"& "*","2222" )
487デフォルトの名無しさん (ワッチョイ 07a5-Iguz)
2022/09/04(日) 22:59:56.29ID:PXpvkR6X0 REPLACE(文字列, 開始位置, 文字数, 置換文字列)
488デフォルトの名無しさん (ワッチョイ 07da-oTx6)
2022/09/04(日) 23:39:15.09ID:+4pXrWCU0 優しいなみんな
総合スレだったらフルボッコ
総合スレだったらフルボッコ
489デフォルトの名無しさん (ワッチョイ 5f3e-NodX)
2022/09/05(月) 18:43:28.63ID:8FlTtg5u0 初心者あるあるなんだろうか
490デフォルトの名無しさん (ワッチョイ bf66-bBdM)
2022/09/05(月) 22:48:54.81ID:C53zNTJD0 ありがとうございました。
ユーザー定義型と連想配列を知って少し前進しました。
検索掛けてもなかなかでないので教えてください。
dim i
for i....
使い終わったらiを未定義に戻したいんですが、
宣言の反対?になるような未定義に戻す関数?ステートメント?はありませんか?
ユーザー定義型と連想配列を知って少し前進しました。
検索掛けてもなかなかでないので教えてください。
dim i
for i....
使い終わったらiを未定義に戻したいんですが、
宣言の反対?になるような未定義に戻す関数?ステートメント?はありませんか?
491デフォルトの名無しさん (ワッチョイ 5f42-JTsi)
2022/09/05(月) 23:44:13.97ID:ZiXiUX+x0 無いし気にする必要もない
492デフォルトの名無しさん (ワッチョイ c7da-HH83)
2022/09/06(火) 02:21:14.99ID:xcONMZhZ0 >>490
ちなみに戻したい理由は何?
ちなみに戻したい理由は何?
493デフォルトの名無しさん (スッップ Sd7f-VPUc)
2022/09/06(火) 03:38:48.46ID:DWdJNYk/d 馬鹿に理由を問う虚しさ
494デフォルトの名無しさん (スフッ Sd7f-k3HK)
2022/09/06(火) 05:21:21.45ID:Fb+lfM05d 変数は使い捨てだよVBAの場合
495デフォルトの名無しさん (ワッチョイ bfda-aLkc)
2022/09/06(火) 06:55:14.80ID:FWLy+pWW0 プロシージャ内で宣言した変数ならプロシージャを抜ければクリアされるしマクロ全体が終了すれば全てクリアされるからあまり気にしない。
privateやpublicで宣言したオブジェクトなら明示的にnothingをsetすることはあるけど、イマドキのPCでメモリ解放もあまり気にする必要はない気もする。
エラーで止まったときを考えると念の為しておくくらいかなぁ。
privateやpublicで宣言したオブジェクトなら明示的にnothingをsetすることはあるけど、イマドキのPCでメモリ解放もあまり気にする必要はない気もする。
エラーで止まったときを考えると念の為しておくくらいかなぁ。
496490 (ワッチョイ bf66-bBdM)
2022/09/06(火) 09:27:26.00ID:uuhY1QFW0 初心者なのでプロシージャ内で処理の順番を変えたくなる時があります。
使う直前に宣言したいのでプロシージャの初めに宣言は出来ればしたくありません。
コピペでソースコードを入れ替えて処理の順番を変えるとforが1回目とfor2回目が入れ替わってしまう事があります。
だから毎度forを使う前は、foreacheもそうですが、宣言が必要かをプロシージャ内を戻って探します。
forが終わるたびに未定義に出来ればいいなと思ったのは使い終わった変数名が後からかぶっても
使い終わった時点で未定義に戻しておけばエラーも不具合も出ないからです。
他の言語だとあるのであるかなと思ったのです。
使う直前に宣言したいのでプロシージャの初めに宣言は出来ればしたくありません。
コピペでソースコードを入れ替えて処理の順番を変えるとforが1回目とfor2回目が入れ替わってしまう事があります。
だから毎度forを使う前は、foreacheもそうですが、宣言が必要かをプロシージャ内を戻って探します。
forが終わるたびに未定義に出来ればいいなと思ったのは使い終わった変数名が後からかぶっても
使い終わった時点で未定義に戻しておけばエラーも不具合も出ないからです。
他の言語だとあるのであるかなと思ったのです。
497デフォルトの名無しさん (ラクッペペ MM8f-gaJG)
2022/09/06(火) 10:03:36.29ID:Z9J6cI+IM はい、わかりました
498デフォルトの名無しさん (ワッチョイ 87cd-CzlZ)
2022/09/06(火) 10:56:34.50ID:MUc/w1ud0499デフォルトの名無しさん (スッップ Sd7f-VPUc)
2022/09/06(火) 11:47:55.76ID:DWdJNYk/d 馬鹿ではなく糖質かな
500デフォルトの名無しさん (スッププ Sd7f-aPzy)
2022/09/06(火) 11:53:04.38ID:o3g0SSKzd 会社のパソコンでvbsからエクセルvbaを起動させメール本文、添付ファイルを作成し添付、outlookでメール送信をしたいのですがOutlookが起動しません。
エクセルから手動でvbaを起動すると正常に動作するのですが、vbsから起動するとタスクバーのエクセルが点滅し停止します。
特にエラーを吐いている様子はありません。
何か思いあたる部分があればご教示ください
エクセルから手動でvbaを起動すると正常に動作するのですが、vbsから起動するとタスクバーのエクセルが点滅し停止します。
特にエラーを吐いている様子はありません。
何か思いあたる部分があればご教示ください
501デフォルトの名無しさん (ワッチョイ 5f2c-HH83)
2022/09/06(火) 12:06:14.05ID:QxRWO4Sk0 漏れの推測だけど、
>タスクバーのエクセルが点滅し
これは、バックグランドで起動しているのでは?
それで、エクセル内のマクロなどが起動しないとか?
>タスクバーのエクセルが点滅し
これは、バックグランドで起動しているのでは?
それで、エクセル内のマクロなどが起動しないとか?
502デフォルトの名無しさん (ワッチョイ e72f-HH83)
2022/09/06(火) 12:18:01.17ID:iobTnTaB0 >>498
定義済みが未定義になるわけじゃないけど
ブロックスコープとかいうやつだな
残念ながら旧VBやVBAにはない。VB.NETにはあるけど
VBAの一番狭いスコープはプロシジャ
なので、プロシジャの先頭に宣言まとめとけって作法がある
定義済みが未定義になるわけじゃないけど
ブロックスコープとかいうやつだな
残念ながら旧VBやVBAにはない。VB.NETにはあるけど
VBAの一番狭いスコープはプロシジャ
なので、プロシジャの先頭に宣言まとめとけって作法がある
503デフォルトの名無しさん (スッププ Sd7f-aPzy)
2022/09/06(火) 13:03:51.66ID:BhZhCXYFd >501
vba自体は動作しております。
手動でvbaを起動するとエクセルが開き添付ファイルなどを作成し、Outlookで送信するのですが
vbsでの起動だと添付ファイルまでは作成するのですが、Outlookが立ち上がらず、タスクバーのエクセルが点滅して動作が止まります。
ネットで調べても事例が出てこず、会社のパソコンなのでシステム管理者に制限をかけられているのか…
何か調べる方法がありましたら教えてください
vba自体は動作しております。
手動でvbaを起動するとエクセルが開き添付ファイルなどを作成し、Outlookで送信するのですが
vbsでの起動だと添付ファイルまでは作成するのですが、Outlookが立ち上がらず、タスクバーのエクセルが点滅して動作が止まります。
ネットで調べても事例が出てこず、会社のパソコンなのでシステム管理者に制限をかけられているのか…
何か調べる方法がありましたら教えてください
504デフォルトの名無しさん (ラクッペペ MM8f-gaJG)
2022/09/06(火) 13:07:25.60ID:Z9J6cI+IM printfデバッグでどこまで動いているか確かめましょう!
505デフォルトの名無しさん (アウアウウー Sa8b-hVXw)
2022/09/06(火) 13:13:46.25ID:Td+5EGNEa506デフォルトの名無しさん (ワッチョイ 07da-oTx6)
2022/09/06(火) 15:27:46.04ID:NuTb9qxy0 VBAでメールとか初めて見た
507デフォルトの名無しさん (ワッチョイ e72f-HH83)
2022/09/06(火) 15:38:34.30ID:iobTnTaB0 >>500
手動で実行できるなら、VBSで起動しているときのユーザとその権限があやしい
つかエラー吐いてないんじゃなくて、ちゃんとエラー捕まえられてないだけだと思うが
あとスクリプト系からのメール送信はいろいろセキュリティ周りでチェックされるかもしれん
とくに会社で管理されてるようなPCなら、ちゃんと管理者に許可とってからやれよ
手動で実行できるなら、VBSで起動しているときのユーザとその権限があやしい
つかエラー吐いてないんじゃなくて、ちゃんとエラー捕まえられてないだけだと思うが
あとスクリプト系からのメール送信はいろいろセキュリティ周りでチェックされるかもしれん
とくに会社で管理されてるようなPCなら、ちゃんと管理者に許可とってからやれよ
508デフォルトの名無しさん (ワッチョイ 2749-DXwO)
2022/09/06(火) 15:44:13.81ID:+5wORWUf0 メール送信用のc#のexeつくって呼び出させるようにしたことならある
あとsendgridAPIよぶの
前者は他にも使い回したな。.NETcoreだった気がするからいつまで使えるやら
あとsendgridAPIよぶの
前者は他にも使い回したな。.NETcoreだった気がするからいつまで使えるやら
509デフォルトの名無しさん (ワッチョイ 5f01-yqJ9)
2022/09/06(火) 15:58:15.39ID:z3X/Y8zI0 >>498
あるものもある、例えばPowerShellにはそのものズバリのRemove-Variableなんてものがあったりする
あるものもある、例えばPowerShellにはそのものズバリのRemove-Variableなんてものがあったりする
510デフォルトの名無しさん (ワッチョイ 5f2c-HH83)
2022/09/06(火) 16:28:13.42ID:QxRWO4Sk0 >>503
>タスクバーのエクセルが点滅して動作が止まります
バックグランドで起動しているだけじゃ、エクセルのマクロが実行されないのかも
printf デバッグで、どこまで動いているか確かめるべき!
エクセルのマクロの、Outlook の起動コードの前後で、何かを出力すれば?
Outlook の起動前に、端末・ファイルへ出力する
Outlook の起動コード
Outlook の起動後に、端末・ファイルへ出力する
>タスクバーのエクセルが点滅して動作が止まります
バックグランドで起動しているだけじゃ、エクセルのマクロが実行されないのかも
printf デバッグで、どこまで動いているか確かめるべき!
エクセルのマクロの、Outlook の起動コードの前後で、何かを出力すれば?
Outlook の起動前に、端末・ファイルへ出力する
Outlook の起動コード
Outlook の起動後に、端末・ファイルへ出力する
511デフォルトの名無しさん (アウアウウー Sa8b-2LH/)
2022/09/06(火) 20:05:52.59ID:D5ckGmEva 動作が止まるのは終了したからかもよ
512490 (ワッチョイ bf66-bBdM)
2022/09/06(火) 20:19:56.69ID:uuhY1QFW0 >>505
なるほど。そういう方もおられるのですね。
EXCEL VBAのプロシージャはあんまり長くしない方がいいよみたいなサイト読んで影響受けてます。
コードの書き方って結構こだわりを持っている方がいるようで、自分はそれに影響を受けやすい方です。
自分もこだわりたい方なんだと思います。
EXCEL VBAを知って、宣言は直前が基本ですよみたいな記事読んで強く影響受けました。
だから使い終わるごとに未定義に出来れば毎度宣言しなおせるからすっきりするのになぁみたいな気持ちでした。
EXCEL VBAとしてはfor やfor eachに使うような変数は先頭宣言にしてやっていこうと思います。
なるほど。そういう方もおられるのですね。
EXCEL VBAのプロシージャはあんまり長くしない方がいいよみたいなサイト読んで影響受けてます。
コードの書き方って結構こだわりを持っている方がいるようで、自分はそれに影響を受けやすい方です。
自分もこだわりたい方なんだと思います。
EXCEL VBAを知って、宣言は直前が基本ですよみたいな記事読んで強く影響受けました。
だから使い終わるごとに未定義に出来れば毎度宣言しなおせるからすっきりするのになぁみたいな気持ちでした。
EXCEL VBAとしてはfor やfor eachに使うような変数は先頭宣言にしてやっていこうと思います。
513デフォルトの名無しさん (ワッチョイ 47ac-DXwO)
2022/09/06(火) 20:29:06.28ID:nWcJdu8F0 ちゃんとfunction分けてたら直前でいいけど、
大抵クソデカ関数ひとつか、グローバル宣言祭りだろうからなあ
大抵クソデカ関数ひとつか、グローバル宣言祭りだろうからなあ
514デフォルトの名無しさん (ワッチョイ 5f01-yqJ9)
2022/09/06(火) 20:37:51.18ID:z3X/Y8zI0 >>512
> EXCEL VBAとしてはfor やfor eachに使うような変数は先頭宣言にしてやっていこうと思います。
とりあえずそれで動くところまで持って行ってコードが固まったらこだわりのコードスタイルにリファクタリングすればいいかと
> EXCEL VBAとしてはfor やfor eachに使うような変数は先頭宣言にしてやっていこうと思います。
とりあえずそれで動くところまで持って行ってコードが固まったらこだわりのコードスタイルにリファクタリングすればいいかと
515デフォルトの名無しさん (ワッチョイ e78e-VPUc)
2022/09/06(火) 21:28:56.11ID:3UeoLADl0516デフォルトの名無しさん (ワッチョイ e72f-HH83)
2022/09/06(火) 21:54:35.94ID:iobTnTaB0517デフォルトの名無しさん (ワッチョイ 5f01-yqJ9)
2022/09/06(火) 22:58:52.94ID:z3X/Y8zI0518デフォルトの名無しさん (ワッチョイ 07da-oTx6)
2022/09/06(火) 23:05:26.43ID:NuTb9qxy0 あまり複雑化しても辛くなるしな
シンプルにシンプルによ
シンプルにシンプルによ
519デフォルトの名無しさん (ワッチョイ 875f-Iguz)
2022/09/07(水) 07:28:44.73ID:TmSq6TyA0 >>516
どういうこと?
最近の言語と違って
・ブロックスコープがない
・宣言と同時に代入できない
以上VBAの特徴2点を差し引いたとしても、
先頭宣言が直前宣言より優れている所なんかひとつもないと思うんだが
どういうこと?
最近の言語と違って
・ブロックスコープがない
・宣言と同時に代入できない
以上VBAの特徴2点を差し引いたとしても、
先頭宣言が直前宣言より優れている所なんかひとつもないと思うんだが
520デフォルトの名無しさん (ブーイモ MM8f-9tU7)
2022/09/07(水) 09:01:28.19ID:l5y/t4MDM 個人的信条を議論するのは無意味
521デフォルトの名無しさん (アウアウクー MMbb-2Jzk)
2022/09/07(水) 17:30:20.88ID:5SecbqGCM 変数はImmutableにするのが最近の言語でしょ
こうなるもうどこで宣言しようが関係ない
こうなるもうどこで宣言しようが関係ない
522デフォルトの名無しさん (ワッチョイ e72f-HH83)
2022/09/07(水) 19:33:33.73ID:nObPwJJb0523デフォルトの名無しさん (アウアウウー Sa8b-yqJ9)
2022/09/07(水) 19:40:46.55ID:qgePcMk7a524デフォルトの名無しさん (アウアウウー Sa8b-yqJ9)
2022/09/07(水) 19:45:10.64ID:qgePcMk7a >>522
> 違うブロックで宣言された変数と宣言が被るリスクが上がるだけなんだが
そんなものどこで宣言しても同じだろ
> むしろ直前宣言が優れている点ってどこだよ?
コードを追う時に見える範囲に宣言あれば型とかも分かるだろ
> 違うブロックで宣言された変数と宣言が被るリスクが上がるだけなんだが
そんなものどこで宣言しても同じだろ
> むしろ直前宣言が優れている点ってどこだよ?
コードを追う時に見える範囲に宣言あれば型とかも分かるだろ
525デフォルトの名無しさん (ワッチョイ 87cd-Iguz)
2022/09/07(水) 19:47:45.63ID:URQHgzNh0526デフォルトの名無しさん (ワッチョイ 47e5-gaJG)
2022/09/07(水) 19:48:48.00ID:ie60y+bR0 インデックスとはいえ変数を使い回すのはNGなのです!
VBAだとしても許されません!ロボコン0点
VBAだとしても許されません!ロボコン0点
527デフォルトの名無しさん (アウアウウー Sa8b-XKc1)
2022/09/07(水) 20:14:29.57ID:lr2lUZXda 質問でもなく他人のコードの変数をどこに書こうがどうでもいいのに書き方に熱くなる人はバカなんだろうね
まあそういう技術的な部分に関係ないところしか語れない程度が集まるスレなんだろうけどw
まあそういう技術的な部分に関係ないところしか語れない程度が集まるスレなんだろうけどw
528デフォルトの名無しさん (アウアウウー Sa8b-hVXw)
2022/09/07(水) 20:36:38.49ID:pBpkzzj3a >>527
そんなに熱くなるなよw
そんなに熱くなるなよw
529デフォルトの名無しさん (スッップ Sd7f-VPUc)
2022/09/07(水) 20:40:11.15ID:dC3z0bZtd >>517
で、答えられずに逃げたのかよ
で、答えられずに逃げたのかよ
530デフォルトの名無しさん (ワッチョイ 5f01-yqJ9)
2022/09/07(水) 20:55:49.52ID:qYDBMpOU0531デフォルトの名無しさん (ワントンキン MM3f-HKBf)
2022/09/07(水) 21:25:08.49ID:dOhAzb3IM532デフォルトの名無しさん (ワッチョイ 5f01-yqJ9)
2022/09/07(水) 21:50:42.41ID:qYDBMpOU0533デフォルトの名無しさん (ブーイモ MM7f-9TNW)
2022/09/07(水) 22:25:03.60ID:GXE70sRqM シェルとシェルスクリプトは間違えてませんですわー
534デフォルトの名無しさん (ワッチョイ 5f4f-ozIc)
2022/09/07(水) 22:55:46.20ID:N0bzWtYO0 >>524
そうね。ブロックスコープは確かに便利。
ただ、匙加減の問題にもなるけど
ブロックスコープに慣れるとついつい
単一責任原則の考え方がおざなりになりがちで
密結合なものを作ってしまい易くなる。
なので、あくまで俺はだけど
EXCELのVBAに関してはメソッドや関数の
頭に変数定義を行うようにしている。
それでコードが読み辛くなるようであれば
その時点でリファクタリングの対象になるという考え。
そうね。ブロックスコープは確かに便利。
ただ、匙加減の問題にもなるけど
ブロックスコープに慣れるとついつい
単一責任原則の考え方がおざなりになりがちで
密結合なものを作ってしまい易くなる。
なので、あくまで俺はだけど
EXCELのVBAに関してはメソッドや関数の
頭に変数定義を行うようにしている。
それでコードが読み辛くなるようであれば
その時点でリファクタリングの対象になるという考え。
535デフォルトの名無しさん (ワッチョイ e7e6-gaJG)
2022/09/07(水) 23:29:34.28ID:N0PmJDO50 でも誰も読まないんだよなー
536デフォルトの名無しさん (ワッチョイ 07da-oTx6)
2022/09/07(水) 23:46:23.08ID:QgSPv1dJ0 ここの回答者は上級者なんだからVBAの事端から端まで知っていると思っていたんですけど??
なんでこんなに荒れているのですか?
なんでこんなに荒れているのですか?
537デフォルトの名無しさん (ブーイモ MM8f-d2Vm)
2022/09/07(水) 23:51:19.61ID:oCHm3LOdM VBAで単一責任て
そもそも表計算ソフトで画面やDBモドキ作ってる時点でおかしいと思わないのか
そもそも表計算ソフトで画面やDBモドキ作ってる時点でおかしいと思わないのか
538デフォルトの名無しさん (ワッチョイ 5f42-JTsi)
2022/09/08(木) 00:18:03.89ID:GEpvz+Yp0 知識と人間性には何も関係がないからじゃね
539デフォルトの名無しさん (ワッチョイ 07da-oTx6)
2022/09/08(木) 01:29:45.47ID:ih3U5PTX0 だって回答者に回れるって事は知り尽くしてるって事なんでしょ?
ちょっと詳しいだけじゃ回答できるはずないもんね?
ちょっと詳しいだけじゃ回答できるはずないもんね?
540デフォルトの名無しさん (ワッチョイ e7e6-gaJG)
2022/09/08(木) 01:40:01.52ID:eb3KVsRH0541デフォルトの名無しさん (ワッチョイ 5f01-yqJ9)
2022/09/08(木) 04:43:57.30ID:dSUuwrfW0542デフォルトの名無しさん (ワッチョイ 7fda-ZqlE)
2022/09/08(木) 06:11:23.79ID:vw1M88UR0 誰が上級者と認定したん?
ここのカキコに資格試験なんかあるかいな・・・
回答が使えるかどうか、正しいかどうかが全てじゃ。
ここのカキコに資格試験なんかあるかいな・・・
回答が使えるかどうか、正しいかどうかが全てじゃ。
543デフォルトの名無しさん (ワッチョイ 47da-XSui)
2022/09/08(木) 06:33:16.02ID:13BgqVgC0 どこで宣言するか問題って、画面上部をスクロールせず固定出来るようになれば解決するんだろうな。
エクセルは出来るんだから、VBAの画面も出来るようにして欲しいものだ。
エクセルは出来るんだから、VBAの画面も出来るようにして欲しいものだ。
544デフォルトの名無しさん (アウアウウー Sa8b-hVXw)
2022/09/08(木) 06:54:06.36ID:9KZ4CtoQa >>543
VBEは昔ながらのUIなので垂直スクロールバーの上部を下にドラッグすると同一オブジェクトコードの水平分割表示ができるけれど
VBEは昔ながらのUIなので垂直スクロールバーの上部を下にドラッグすると同一オブジェクトコードの水平分割表示ができるけれど
545デフォルトの名無しさん (ワッチョイ 5f4f-ozIc)
2022/09/08(木) 08:07:26.88ID:YfOXyicz0 >>541
分かり辛かったかな?
平たく言うと変数が何に使っているか分かり辛くなるような長いコードをひとつの関数やメソッドに書くなということ。
そもそもひとつの関数やメソッドにはひとつの役割だけ持たせるべきで、そうした場合、変数が何に使ってるか分からないくらい長くなること自体あまりないし、
それで長くなるようであればそもそもの作りがおかしいのでリファクタリングの対象とする、ってことなんだけどね。
分かり辛かったかな?
平たく言うと変数が何に使っているか分かり辛くなるような長いコードをひとつの関数やメソッドに書くなということ。
そもそもひとつの関数やメソッドにはひとつの役割だけ持たせるべきで、そうした場合、変数が何に使ってるか分からないくらい長くなること自体あまりないし、
それで長くなるようであればそもそもの作りがおかしいのでリファクタリングの対象とする、ってことなんだけどね。
546デフォルトの名無しさん (アウアウウー Sa8b-Ro21)
2022/09/08(木) 09:21:51.81ID:JEMfdspaa VB/VBA/ExcelもAccessもOfficeごと窓からポイッ
547デフォルトの名無しさん (ワッチョイ 5f01-yqJ9)
2022/09/08(木) 10:06:01.26ID:dSUuwrfW0 >>545
> 平たく言うと変数が何に使っているか分かり辛くなるような長いコードをひとつの関数やメソッドに書くなということ。
それ変数の宣言位置とは違う話だろ
まあ先頭に変数宣言するメリットを説明できないならいいや、バイバイ
> 平たく言うと変数が何に使っているか分かり辛くなるような長いコードをひとつの関数やメソッドに書くなということ。
それ変数の宣言位置とは違う話だろ
まあ先頭に変数宣言するメリットを説明できないならいいや、バイバイ
548デフォルトの名無しさん (ワッチョイ 5f4f-ozIc)
2022/09/08(木) 11:40:59.40ID:YfOXyicz0 >>547
なんで?
どうせ同じ関数内で同じ名称の変数なんて作れないんだから
全部纏めて同じ位置にあった方が「この変数はこのシチュエーションのときにこう言った意味で使う」とか命名し易いじゃん。
使ってる変数名を再宣言しようとして「あ」となることもないし、
同じ変数をバカみたいに使い回して本当は値変えると不味かったのに変えちゃったりとかアホなことも減るよ。
なんで?
どうせ同じ関数内で同じ名称の変数なんて作れないんだから
全部纏めて同じ位置にあった方が「この変数はこのシチュエーションのときにこう言った意味で使う」とか命名し易いじゃん。
使ってる変数名を再宣言しようとして「あ」となることもないし、
同じ変数をバカみたいに使い回して本当は値変えると不味かったのに変えちゃったりとかアホなことも減るよ。
549デフォルトの名無しさん (ワッチョイ 5f4f-ozIc)
2022/09/08(木) 11:47:17.27ID:YfOXyicz0 ま、そもそもそんなこと気にするくらい長いコード書いちゃいけないんだけどね。
そちらのレベルに合わせて話してもそれだけのメリットはあるよ。
そちらのレベルに合わせて話してもそれだけのメリットはあるよ。
550デフォルトの名無しさん (ワッチョイ 0701-w6dw)
2022/09/08(木) 13:19:53.66ID:E2yDW5TJ0 Wordがどうしようもなく使いにくいので、
Excel VBAで代わりのツールを作りたいと思います。
こんな考え方は邪道でしょうか?
Excel VBAで代わりのツールを作りたいと思います。
こんな考え方は邪道でしょうか?
551デフォルトの名無しさん (ワッチョイ bf8c-KgU2)
2022/09/08(木) 13:50:27.43ID:N6XG++JQ0 WordVBAを何故つかわない?
マウロ記録がないOutlookVBAやPowerpointVBAなら一瞬気持ちがわかるが
マウロ記録がないOutlookVBAやPowerpointVBAなら一瞬気持ちがわかるが
552デフォルトの名無しさん (ワッチョイ 27da-2LH/)
2022/09/08(木) 14:17:07.18ID:Sm7a3fWy0 loopのカウンタを使用後に消さないと
順番入れ替えたらバグるとか気にする初心者にはvba向いてないと思う
順番入れ替えたらバグるとか気にする初心者にはvba向いてないと思う
553デフォルトの名無しさん (ワッチョイ 5f7c-Gzrn)
2022/09/08(木) 16:06:28.64ID:e4Jhfn6X0 ワードにできることはエクセルでほぼ出来るからワードの使いかた忘れてしもた
しかし困ったことはない
しかし困ったことはない
554デフォルトの名無しさん (ワッチョイ 5f01-yqJ9)
2022/09/08(木) 17:02:48.44ID:dSUuwrfW0 >>548
> 全部纏めて同じ位置にあった方が「この変数はこのシチュエーションのときにこう言った意味で使う」とか命名し易いじゃん。
コボル臭が... w
まあ使ってる近くにあれば宣言なども簡単に確認できるメリットより命名のメリットを重視する人もいるんだね
> 使ってる変数名を再宣言しようとして「あ」となる
んだから
> 同じ変数をバカみたいに使い回して本当は値変えると不味かったのに変えちゃったりとかアホなことも減るよ。
なんてなるわけないと思うけど?
> 全部纏めて同じ位置にあった方が「この変数はこのシチュエーションのときにこう言った意味で使う」とか命名し易いじゃん。
コボル臭が... w
まあ使ってる近くにあれば宣言なども簡単に確認できるメリットより命名のメリットを重視する人もいるんだね
> 使ってる変数名を再宣言しようとして「あ」となる
んだから
> 同じ変数をバカみたいに使い回して本当は値変えると不味かったのに変えちゃったりとかアホなことも減るよ。
なんてなるわけないと思うけど?
555デフォルトの名無しさん (スフッ Sd7f-k3HK)
2022/09/08(木) 19:47:18.35ID:wUuMBq/Ad Excel → Markdown → Word アウトライン変換のマクロを作れば大分マトモになる予感
Excelの列で見出しを識別する感じで
Excelの列で見出しを識別する感じで
556デフォルトの名無しさん (ワッチョイ 9e8c-ntgB)
2022/09/10(土) 00:50:29.07ID:yQKHhevv0 intersect( activecell.ListObject.HeaderRowRange,activecell.EntireColumn).Address
テーブル上にアクティブセルがあり、そのセルの列ラベルのアドレスを調べたく
こんなのを書いたのですが、もっと他にイケてる書き方はないでしょうか
テーブル上にアクティブセルがあり、そのセルの列ラベルのアドレスを調べたく
こんなのを書いたのですが、もっと他にイケてる書き方はないでしょうか
557デフォルトの名無しさん (ワッチョイ ead8-RGdV)
2022/09/10(土) 10:48:25.59ID:+u60WJ7w0 activeCell.End(xlUp).Address は?
上に隣接する別のテーブルがないことが条件だけど
上に隣接する別のテーブルがないことが条件だけど
558デフォルトの名無しさん (ササクッテロレ Spbd-0QGi)
2022/09/10(土) 15:51:20.36ID:qRafw5tCp559デフォルトの名無しさん (ワッチョイ 5d10-V+uT)
2022/09/11(日) 01:14:19.08ID:W9G67fQJ0 バイナリデータの書き込みについて質問です。
hello という文字列をいったんバイナリにしてファイル書き込みするような
プログラムを書いているのですが、書き込みすると
h e l l o
というように変なゴミが入ってきます。
vbaではバイナリデータの書き込みは完全にはできないということなのでしょうか。
該当コード
https://ideone.com/MDI6yW
hello という文字列をいったんバイナリにしてファイル書き込みするような
プログラムを書いているのですが、書き込みすると
h e l l o
というように変なゴミが入ってきます。
vbaではバイナリデータの書き込みは完全にはできないということなのでしょうか。
該当コード
https://ideone.com/MDI6yW
560デフォルトの名無しさん (ワッチョイ 5d10-V+uT)
2022/09/11(日) 01:15:18.73ID:W9G67fQJ0 書き込みすると変なゴミデータが見えなくなってしまいましたが、要するに
正確に半角英数字でhelloという文字が再現できないのです。
正確に半角英数字でhelloという文字が再現できないのです。
561デフォルトの名無しさん (アウアウウー Sa21-dMtT)
2022/09/11(日) 01:27:32.82ID:PnV//sAoa >>560
どういう内容なのかダンプして確認しないのかい?
どういう内容なのかダンプして確認しないのかい?
562デフォルトの名無しさん (ワッチョイ f1ce-Mjbb)
2022/09/11(日) 01:41:57.90ID:yPB6Wd0g0 >>559
Option Explicit
Sub main()
Dim bs(4) As Byte
bs(0) = Asc("h")
bs(1) = Asc("e")
bs(2) = Asc("l")
bs(3) = Asc("l")
bs(4) = Asc("o")
Dim fn As Integer: fn = FreeFile
Dim fpath As String: fpath = "C:\指定のパス\output.txt"
Open fpath For Binary As #fn Len = 1
Dim i As Integer
For i = LBound(bs) To UBound(bs)
Put #fn, , bs(i)
Next i
Close #fn
End Sub
Option Explicit
Sub main()
Dim bs(4) As Byte
bs(0) = Asc("h")
bs(1) = Asc("e")
bs(2) = Asc("l")
bs(3) = Asc("l")
bs(4) = Asc("o")
Dim fn As Integer: fn = FreeFile
Dim fpath As String: fpath = "C:\指定のパス\output.txt"
Open fpath For Binary As #fn Len = 1
Dim i As Integer
For i = LBound(bs) To UBound(bs)
Put #fn, , bs(i)
Next i
Close #fn
End Sub
563559 (ワッチョイ 5d10-V+uT)
2022/09/11(日) 01:50:58.58ID:W9G67fQJ0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★8 [ぐれ★]
- 【外交】元台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」★2 [1ゲットロボ★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【芸能】俳優・野村宏伸 テレビドラマの制作費やギャラの現状訴え 「比べものにならない位、今は低くて…」 [冬月記者★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 【悲報】資産400億投資家「日本円ガチホはアホ、アベノミクス並みの自国通貨安売り後進国狙い政策でみんな貧乏外国からの仕事で頑張って [733893279]
- 【悲報】自民党のヒゲ、外務省局長と中国高官の写真にブチギレwwwwwwwwwwwwww [834922174]
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- 麻生太郎、腹をくくる「日本国民が高市を総理に選んだ。であるならば最期まで支えるのが私たちの役目」 [329329848]
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
- おじゃる丸実況をするためのお🏡
