Excel VBA 質問スレ Part62

■ このスレッドは過去ログ倉庫に格納されています
1
垢版 |
2019/06/24(月) 00:21:37.48
!extend:checked:vvvvv:1000:512

ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK

※前スレ
Excel VBA 質問スレ Part61
http://mevius.5ch.net/test/read.cgi/tech/1556203263/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2019/06/30(日) 14:14:35.59ID:/mKHwNLn0
正直VBAでするお仕事の規模でグローバル変数とか気にしてもしょうがないぞ
2019/06/30(日) 14:15:03.88ID:C4oDmko00
>>149
ステータス管理の内容によるだろ
その状態を次回まで引継ぐとかならセルでやるしそうでないなら変数でいいと思う
セルは通常のプログラムで言うストレージに近い
2019/06/30(日) 14:16:35.06ID:gq8hO7PC0
俺がここ(>>65)で教えてもらったのは、色々な書き方があるって事で、絶対こう書けってことは言われてないぜ。
俺が脱初級者になる為の一つのヒントをもらっただけで、俺の技量が上がれば、何が最適か自分で判断するよ。


凄腕の人が、ヒントやキーワードを無料で教えてくれてるだけで、ホント感謝だわ。
2019/06/30(日) 14:19:10.48ID:C4oDmko00
>>151
スコープの話にしようとしてる?
まあどんな方法を取るかはプログラマー次第だけど、今時グローバル変数/モジュール変数はなぁっていうだけの話
あと自作クラスを作るのはいいけどそのインスタンスはどうやって持つつもり?
2019/06/30(日) 14:39:05.01ID:y5K6zYFc0
>>156
流れと関係ないけど、「グローバル変数を使うのはやめてクラス化しましょう」
みたいな意味不明な主張はわりと見る。
2019/06/30(日) 14:41:17.22ID:y5K6zYFc0
>>149
・そのステータスがUIの一部でもある
・プログラムが終了しても値をセーブしておきたい
場合なら許容できるかな
2019/06/30(日) 14:47:59.50ID:vn2320T90
あとからメンテさせられた時大変なのでVBAかどうかではなく構成によって使い方を考慮してもらえるとありがたいです
2019/06/30(日) 14:50:22.38ID:C4oDmko00
>>157
あれなんなんだろうね
なんか異様なクラス信仰でもあるんだろうかw
2019/06/30(日) 14:55:17.57ID:VDp+hLNV0
>>152
何故引数を知らないと批判出来ないんだ?
バカ過ぎだろ。

お前のような初心者はプロシージャを分けるという発想が無い。
引数を知らないからプロシージャを分けたら連携するためにはグローバル変数を使うしか無いと思ってたんだろ。
バレバレだ。
2019/06/30(日) 14:56:21.14ID:VDp+hLNV0
>>156
その批判もピント外れ。
今時とか関係ないからwww
2019/06/30(日) 15:00:07.08ID:VDp+hLNV0
>>156
「今時なあ」は君の意見じゃないのか。
何か、最初の勘違いから変に君とおかしな奴のIDを間違えるようになっちまった。
2019/06/30(日) 15:01:36.30ID:VDp+hLNV0
マジでIDが分からなくなってるな。
2019/06/30(日) 15:27:25.40ID:C4oDmko00
必死の連投w
ちょっと頭冷やせばいいのに…
2019/06/30(日) 15:29:48.78ID:VDp+hLNV0
どっちにしても引数知らなくてもグローバル変数批判は出来るし、実際批判したじゃないか。
2019/06/30(日) 16:01:59.12ID:C4oDmko00
マジで言ってるのか…

>>73
> ということは、dimしてる行を全部外に出せば良いのですかね?

これはグローバル変数を使うことを示唆してる
それに対して>>74が何も言ってないから指摘したの、わかる?

ちなみにいま読み返したら
>>75
> いや、全部じゃなく、複数のプロシージャで使うものだけね。
と、もっと直接的に言ってるアホがいたわ
しかもそいつは
>>103
> 誰もグローバル変数なんか勧めてないが。
とか言ってるしww
2019/06/30(日) 16:30:49.40ID:Pna16KLyx
>>150
>>151
サンガツ
よく状況が分かったよ
他人を馬鹿にしたいだけ人っているよね
初心者から抜け出せないタイプだと思うわ
2019/06/30(日) 16:32:22.11ID:C4oDmko00
> 他人を馬鹿にしたいだけ人っているよね
> 初心者から抜け出せないタイプだと思うわ
ブーメラン乙w
2019/06/30(日) 16:37:19.69ID:Pna16KLyx
ちなみにグローバル変数絶対反対っていう風潮って古いよね
ローカル変数を多用した状態管理って保守運用のフェーズでは多重階層化の弊害を招きかねないから変数スコープの制限はケースバイケースでしょ
2019/06/30(日) 16:40:56.82ID:Pna16KLyx
>>169
どこがブーメランなんだ?
俺は他人を馬鹿にしたい "だけ" の人間ではないし、初心者でもないんだが
馬鹿を馬鹿にするのは楽しいけどな
2019/06/30(日) 16:53:27.63ID:VDp+hLNV0
>>167
だからそれは引数を知らなくても出来るし、実際知らなかったろ。
引数を知っていた筈という話には全く繋がっていない。
2019/06/30(日) 17:37:14.13ID:C4oDmko00
「自称」非初心者がなぜか
> ローカル変数を多用した状態管理
とか頓珍漢な事を言い出したぞw
なぜわざわざ墓穴を掘りに来るんだ…
2019/06/30(日) 17:44:20.92ID:C4oDmko00
>>172
まだ言ってるのかよ…
お前がどう思おうと客観的な根拠もないことを何度繰り返しても真実にはならんよ
真実は
>>65を見た>>73がグローバル変数で情報の受け渡しをすると思った
だけな
2019/06/30(日) 18:31:31.13ID:gq8hO7PC0
>>65で教えてもらっただけで、そんなこと全く思ってないけど??
勝手に何言ってんだ??
2019/06/30(日) 18:41:44.46ID:/mKHwNLn0
喧嘩のダシにしたいだけだからほっとけ
2019/06/30(日) 18:47:19.24ID:C4oDmko00
>>175
お前が誰かは知らんけど
>>73
> ということは、dimしてる行を全部外に出せば良いのですかね?
って書いてるからな
2019/06/30(日) 18:52:36.45ID:V9f3dG8f0
>>104
全部出していいかと聞かれたから、全部は出すなと言っただけだろうが。
それのどこが推奨してることになるんだ?
もし推奨するなら、全部出せって言うわ。
2019/06/30(日) 18:54:13.05ID:gq8hO7PC0
それは俺なんだわ

ただ
>>65を見た>>73がグローバル変数で情報の受け渡しをすると思った

これは全然違う



おまえ、ここで親切に教えてくれてる人に不快な思いをさせるなよ
2019/06/30(日) 18:57:02.48ID:gq8hO7PC0
>>179 = >>73
2019/06/30(日) 19:04:25.26ID:cq9JZECt0
飲みに行って帰って来たらまだやってて笑ったw

>>177
一日中不毛な言い争いしてて受けるw
生きてる意味ねーw
2019/06/30(日) 19:13:52.15ID:iNixG7Sv0
このキッズは全方位敵なん?
2019/06/30(日) 19:14:25.43ID:C4oDmko00
>>178-179
なら
> ということは、dimしてる行を全部外に出せば良いのですかね?
の意味を説明してみ
2019/06/30(日) 19:16:23.51ID:gq8hO7PC0
>>183
なんで??
2019/06/30(日) 19:18:46.02ID:C4oDmko00
>>181
> 生きてる意味ねーw
もうそう言う事しか言えないんだな…
2019/06/30(日) 19:19:59.40ID:C4oDmko00
>>184
ああ、説明できないなら無理に説明しなくてもいいよ
2019/06/30(日) 19:21:46.32ID:C4oDmko00
>>178
> いや、全部じゃなく、複数のプロシージャで使うものだけね。
なんのためにこんなことが必要なんだろうねw
2019/06/30(日) 19:23:40.23ID:gq8hO7PC0
>>186
じゃあ言うなよ
2019/06/30(日) 19:34:27.26ID:V9f3dG8f0
>>185
生きてる意味ないのは本当だろう。
リアル社会でどんだけクズなのか知らんが、
こんなネット掲示板ですら何の役にも立たず、荒らすだけの存在なんて。
2019/06/30(日) 19:44:36.48ID:VDp+hLNV0
>>187
全然反論になっていない。
グローバル変数を勘違いしようがしまいが、お前が引数を知らないで、プロシージャを分けるとグローバル変数を使用するしか無くなるという頓珍漢な批判したことは変わらない。
2019/06/30(日) 19:46:49.51ID:C4oDmko00
>>188
ああ、すまん
そこまで困ってるとは思わなかったよww
2019/06/30(日) 19:47:37.07ID:C4oDmko00
>>189
自己紹介乙w
2019/06/30(日) 19:51:16.51ID:C4oDmko00
>>190
俺がどう批判したかなんて関係ないよ
>>75
> 複数のプロシージャで使うものだけね。
って言った事実は消えないってだけ
可能ならその意図を説明して欲しいが、まあ無理でしょ?w
2019/06/30(日) 19:57:00.90ID:gq8hO7PC0
>>191
なんでお前に説明せなあかんねんって事なんだが、
なにひとりで納得してんの??
気持ちわりー
2019/06/30(日) 19:58:39.30ID:V9f3dG8f0
>>193
ローカルとグローバルを使い分けるという意味だが。
ローカル教のお前は理解できんだろうが。
2019/06/30(日) 20:08:38.94ID:VDp+hLNV0
>>193
>>75は全くその通りだが。
何がおかしいんだ?
2019/06/30(日) 20:10:28.82ID:VDp+hLNV0
>>195
ああ、そういう意味で>>193は批判してたのか。
うん、使い分けるという意味だよなあ。

逆に>>193が何を言ってるのか分からんかったよ。
2019/06/30(日) 20:10:54.63ID:C4oDmko00
>>195
は?
> 複数のプロシージャで使うものだけね。
なのにローカル?
使い分けるってことはグローバルも使うってことだよね?
まあ>>194みたいな結論になる前に黙ったほうがいいと思うよw
2019/06/30(日) 20:13:10.39ID:VDp+hLNV0
>>198
えっ、お前ってグローバルは少しも使っちゃいけないって意見だったの?
一体、どこの初心者だよw
2019/06/30(日) 20:20:42.07ID:V9f3dG8f0
>>198
何でお前はそんなに俺がグローバルを推奨してるってことにしたいんだ?
もう一度言うが、外に出して良いかと聞かれたから、
外に出して使うケースを書いただけだぞ。
2019/06/30(日) 20:25:27.71ID:gq8hO7PC0
結局これは何だったんだ?

>>65を見た>>73がグローバル変数で情報の受け渡しをすると思った

こいつは俺の思考を勝手に解釈して、間違って恥かいてたの??
2019/06/30(日) 20:34:43.47ID:gq8hO7PC0
ID:C4oDmko00 はもう人に迷惑かけるんじゃねーぞ

今流行りの犯罪者になっちゃうぞ
2019/06/30(日) 20:34:46.48ID:C4oDmko00
>>199
必要なら使う
必要ないなら使わない
せっかく>>65みたいに機能分割したんならグローバル変数なんて必要ないでしょ
って言うだけの話

>>200-201
もうお前らいいからw
2019/06/30(日) 20:44:31.53ID:V9f3dG8f0
>>203
>もうお前らいいからw

人に聞いておいて、何だその言い草は。
お前マジで人間終わってるよ。生きてて良いレベルじゃない。
2019/06/30(日) 20:47:56.97ID:VDp+hLNV0
>>203
はい?
何言ってんだ?

機能分割とグローバル変数は関係ないぞ。
アプリ全体で使いたければグローバル変数にするだろ。
プロシージャを何個もまたぐのに、それだけの為に全部引数で渡すのか?

プロシージャに分けるのは汎用化、独立性の為で、その為にグローバル変数じゃなく引数にするということはある。
しかし、アプリ全体を通して使いたいものは、グローバルで問題無いぞ。
2019/06/30(日) 21:17:09.76ID:C4oDmko00
>>204
> 外に出して使うケースを書いただけだぞ。
だからそれはなんのためにやるんだ?
って聞いてるのにローカルがどうのこう言われてもねぇ…
重ねて言うけど外に出さないケースなんて聞いてないから
2019/06/30(日) 21:22:26.04ID:V9f3dG8f0
>>206
もういいってお前が言ったんだぞ。
いい加減にしろ。
2019/06/30(日) 21:24:49.36ID:V9f3dG8f0
俺はもう降りる。

いいか?
間違っても、犯罪起こして、ネットでバカにされたせい、
全部こいつらが悪いとか言うんじゃないぞ。
2019/06/30(日) 21:26:36.15ID:C4oDmko00
>>205
例えばログ用のインスタンスとかならあるだろうな
でも>>65みたいなケースはちがうでしょ?
具体的に言えば例えばkumiaiinっていう変数は「転記」と「検索」でしか使ってないのにグローバル変数にするの?
って話ね
2019/06/30(日) 21:28:41.32ID:C4oDmko00
>>207-208
相手して欲しいのかして欲しくないのかどっちだよw
むしろ危ないのはイライラしてるお前じゃね?
2019/06/30(日) 22:01:39.30ID:Pna16KLyx
ワークブックとかシートとかのExcelオブジェクトでPublic変数を定義する場合と標準モジュールでPublic変数を定義する場合とでは挙動が違うっていう点も大事だと思うんだよな
2019/06/30(日) 22:22:52.22ID:cq9JZECt0
飲み直したらまだやっててワロタw
その人生楽しいの?w
2019/06/30(日) 22:24:39.11ID:cq9JZECt0
明日も仕事だしさっさと寝るわw
何の意味もない煽りあい頑張って~
バイバ〜イ
2019/06/30(日) 22:34:33.38ID:/mKHwNLn0
貴重な土日の休みを5chのレスバで消耗するとか悲しすぎるだろ
2019/06/30(日) 22:36:45.08ID:C4oDmko00
そのまま寝ればいいのに構ってちゃんかよw
2019/07/01(月) 17:35:52.04ID:cYPcOUYxM
争いは同じレベルのもの同士でんでん
2019/07/08(月) 12:55:08.17ID:wM37za2Ap
vbaでpdfの入力フォームとかいじる必要がでてきたけどぜんぜんわかんねえ
2019/07/08(月) 22:30:38.20ID:IUy7ighP0
>>217
AdobeのPDFを編集出来るバージョンを持ってれば、参照設定でいじれるし、
ググれば結構作例が出てくるから難しくはない。
無ければ難しいだろうね。
2019/07/08(月) 22:33:03.25ID:K1lNVB+B0
Acrobatなしのpdf編集なんて楽勝やろ、と思ったらゲキムズで諦めた
今でも難しいんかね
2019/07/08(月) 22:37:09.99ID:IUy7ighP0
中身がテキストじゃなくバイナリって時点で、Acrobatなしは諦めたけど、
XFDFだっけ?
ああいうのでも良ければ何とかなるかもしれない。
2019/07/08(月) 23:33:33.59ID:UtNHHKkH0
>>219
まだ昔の方が比較的簡単だった
今はもう完全に不可能と思った方がいい
2019/07/09(火) 06:44:08.92ID:WKH76Tm+0
>>221
ありがとう
素直に無理だと言えるわ
2019/07/09(火) 08:30:06.28ID:6Bq35cxKM
>>221
構造は基本変わってないでしょ?
機能がたくさん付加されてるから完全対応とかはめちゃ大変だけど
2019/07/09(火) 12:13:15.60ID:DKfsNX1q0
ゼロからPDF形式のファイルを生成するだけなら簡単
下位互換はあるから、昔の簡単なフォーマットで作ればいいだけだから

最新バージョンの編集は、機能が増えすぎてちょっとやそっとじゃ対応できない
PDFの仕様書はネットに転がってるから、あとはやる気次第かなあ
https://itchyny.haten%61blog.com/entry/2015/09/16/100000
225デフォルトの名無しさん (スップ Sd1f-SD32)
垢版 |
2019/07/09(火) 19:47:33.40ID:IlkFvBc6d
だからそんなのをVBAでやるなって
エクセルとかオフィス専用なんだろ?
2019/07/09(火) 22:23:38.13ID:oeycIJBCM
いいなぁ僕もマウントできるくらい、まくろのお勉強しないとなぁ
2019/07/10(水) 00:05:48.15ID:2g97+NtOM
>>217
単にWordで入力欄のあるPDFを作るのをVBAで補助するだけじゃあ駄目なの?
228デフォルトの名無しさん (ワッチョイ 03f1-6S3C)
垢版 |
2019/07/10(水) 03:46:18.75ID:/43btnxd0
>>227
駄目だから聞いておるのだ
2019/07/10(水) 04:30:22.12ID:SDsuvs1Ha
>>228
聞いてないじゃん
230デフォルトの名無しさん (ワッチョイ 03f1-6S3C)
垢版 |
2019/07/10(水) 05:04:32.44ID:/43btnxd0
>>229
このハゲー!
2019/07/10(水) 09:21:12.99ID:/DhDK/tba
初歩的な質問で申し訳ないんだけど、ボタンをクリックしたらテキストボックスの値を参照して、参照した値を表示するプログラムがうまくいかないんだけどどう直したらいいのか教えて欲しい。エラーはこんな感じ
https://i.imgur.com/AG4P5Zh.jpg
https://i.imgur.com/VSa48Wl.jpg
2019/07/10(水) 09:31:54.02ID:ZjOdLx630
標準モジュールに書いてるの?
2019/07/10(水) 09:33:44.47ID:ZjOdLx630
間違えたユーザーフォームじゃないのか
たしかSheet1のモジュールに書かないと名前を認識しないはず
2019/07/10(水) 09:38:27.87ID:/DhDK/tba
>>232
標準モジュールに書いてる、というかボタンをつくってVBを編集すると標準モジュールにコードが書かれるんだけどSheet1にボタンのコードを書くってどうやるの?
2019/07/10(水) 10:10:47.92ID:2g97+NtOM
>>229
まあ作りたいものの要件も定義できないんだろうね
各種バージョンによって仕様のあるPDFをVBAで編集するなんて考えるだけ無駄なのに
2019/07/10(水) 10:32:27.39ID:/DhDK/tba
>>233の言うとおりにシート1に書いたコードを実行したら動くんだけど、ワークシート上のボタンを押しても反応しないのはなんでなんだ
https://i.imgur.com/Kwm4ZvL.jpg
https://i.imgur.com/QgVMdBG.jpg
2019/07/10(水) 10:51:52.96ID:ZjOdLx630
イベントの名前間違えてるよ
2019/07/10(水) 10:54:31.22ID:yoXwfxDh0
>>236
このシートにあるボタンって標準モジュールのボタン2で書いたコードと同じもの?
2019/07/10(水) 10:57:37.67ID:yoXwfxDh0
ボタンのプロパティを見てみて
2019/07/10(水) 10:58:01.30ID:/DhDK/tba
>>237
出来ればどこを間違えてるか教えて欲しい
>>238
同じもの
241デフォルトの名無しさん (ワッチョイ 6ff7-T0Pq)
垢版 |
2019/07/10(水) 11:04:25.88ID:ZjOdLx630
Private Sub TextBox1_Change() の1行を
Sub ボタン2_Click()
に変えれば動くはず。
2019/07/10(水) 11:14:52.80ID:yoXwfxDh0
>>240
同じものであれば、>>236と同じエラーが出るってこと
ならば、txt.TextだけどSheets(1).txt.Textでないの
243デフォルトの名無しさん (ワッチョイ 6ff7-T0Pq)
垢版 |
2019/07/10(水) 11:37:21.93ID:ZjOdLx630
ごめん確認したけどActiveXじゃないフォームコントロールのボタンだと
シートモジュールに書いても無理だったわ。
標準モジュールに以下のとおりやると動く

Sub ボタン1_Click()
MsgBox Worksheets(1).TextBoxes("txt").Text
End Sub

ワークシート1枚なのが前提だから調整してね。
2019/07/10(水) 11:44:51.66ID:ZjOdLx630
オブジェクト名だけでの直接指定ってシートモジュールでないと通じないし
でもフォームコントロールのイベントは標準モジュールに書かないと動かないっていう
2019/07/10(水) 11:50:01.32ID:/DhDK/tba
>>239
ボタンのプロパティが表示されない
>>242
>>243
こうなったんだけどなんでだろ
https://i.imgur.com/qivCtCe.jpg
2019/07/10(水) 11:52:33.72ID:/DhDK/tba
https://i.imgur.com/017G76Q.jpg
>>243
画像こっちだった
2019/07/10(水) 12:02:55.71ID:/DhDK/tba
ごめんフォームコントロールじゃなくてActiveXでボタンをつくったらちゃんと動いた皆が言ってたのはこういう事だったのか
https://i.imgur.com/aBVNoI2.jpg
2019/07/10(水) 12:05:52.68ID:ZjOdLx630
こっちだとこれで上手くいくんだけどね
https://i.imgur.com/BOjQoKC.jpg
環境はoffice365
テキストボックスは挿入タブから作成
ボタンは開発タブのフォームコントロールから追加
2019/07/10(水) 12:07:10.09ID:ZjOdLx630
そうそうフォームコントロールよりActiveXのほうが複雑だけど融通が利くよ
2019/07/10(水) 12:09:25.00ID:yoXwfxDh0
>>244
まあ、「フォームコントロール」は使うなと教わった気がする
ActiveXですべてコントロール書くな
混ぜて使うと今回みたいにぐちゃぐちゃになるよな
>>245
>ボタンのプロパティが表示されない
ああ、フォームコントロールは表示しないのか、使わんほうがいいと思う
2019/07/10(水) 12:15:01.17ID:/DhDK/tba
ID:ZjOdLx630 ID:yoXwfxDh0色々教えてくれてありがとう
2019/07/10(水) 19:31:16.98ID:AV6w05Aj0
ActiveXってまだ使えるのか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況