Excel VBA 質問スレ Part55

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/07/22(日) 14:13:18.78ID:/fuF+goF
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK


※前スレ
Excel VBA 質問スレ Part54
https://mevius.5ch.net/test/read.cgi/tech/1527334657/
2018/08/16(木) 11:16:20.96ID:18y92em0
やたら長文飛び交ってるからスルーしてたけどお前ら馬鹿なのか?
714デフォルトの名無しさん
垢版 |
2018/08/16(木) 11:36:03.34ID:gbtMedVo
>>713
スルーして本題が復活するまで待つか自分で振るかすればいいじゃん。
715デフォルトの名無しさん
垢版 |
2018/08/16(木) 11:37:12.39ID:q37zSSst
これ自作自演のひとりの人らしいですよ
2018/08/16(木) 11:55:56.49ID:H/uvpZju
botだよ
2018/08/16(木) 12:04:32.04ID:MBvEYoJ9
最近のAIはすごいな
2018/08/16(木) 12:08:01.31ID:0dTep/In
>>693
cellsにも明示的にシート指定すればいいんだよ
2018/08/16(木) 12:39:20.77ID:t6OwQxX1
>>712
> もう書かれているから断る
でも、どこに書いてるかは明かせないってか?
低能がごまかすのによくやる手 w
2018/08/16(木) 12:42:23.78ID:VPX9WWnJ
>>717
AIにしても酷い出来だろ、これは
721デフォルトの名無しさん
垢版 |
2018/08/16(木) 12:44:51.37ID:fD/OKUaV
まだ機械学習中なんで
722デフォルトの名無しさん
垢版 |
2018/08/16(木) 12:51:48.47ID:gbtMedVo
>>719
みんな思ってるんだよ。
「断る」
ってな。
723702
垢版 |
2018/08/16(木) 12:55:51.13ID:ZGWCaRN6
>>705
ありがとうございます!
724デフォルトの名無しさん
垢版 |
2018/08/16(木) 12:59:30.71ID:fD/OKUaV
みんな知らんだろうけどこの法学部と院卒のくだりは昨日の夜からやってるんだからな
一旦睡眠のために休憩してたみたいだけど
こんなどーでも良いことを続けられるなんて凄いよな
2018/08/16(木) 13:41:48.38ID:18y92em0
>>724
人間はどーでもいいことにこそ注力しちゃう生き物なんだよなぁ
でもよそでやれ
2018/08/16(木) 14:01:26.94ID:t6OwQxX1
>>722
はいはい w

詭弁のガイドライン
5.資料を示さず持論が支持されていると思わせる
https://ma tome.na ver.jp/m/odai/2144740466806479501
2018/08/16(木) 15:28:17.68ID:MBvEYoJ9
また寝たのか?
生活リズムガッタガタやな
728デフォルトの名無しさん
垢版 |
2018/08/16(木) 16:03:09.69ID:3fUcOf8H
質問したいんやけど
VBA エキスパートのベーシックの資格を取ろう公式テキスト買ったんやけど
模擬試験をやろうとしたけどWindows 7までしか対応していないんや
Windows 10の場合、代替プログラムをインストールしろと書いてあるが
インストールの仕方がわからん
知ってる人いる?
2018/08/16(木) 17:16:08.82ID:5/9Syz1B
すげーな、ハンドルと右折の話から一週間くらいでこれとか活気があっていいなw

サマータイムの話が職場で盛り上がった時に
それくらいはプログラム作るときに考慮しておけよなって人が多くて
やっぱり求められてるのはハンドル作れってことなんだなと痛感したわ
ー応じようだなんて1ミリも思わないけどww
2018/08/16(木) 18:00:06.03ID:L21XhAl1
>>728
それ自体が試験の一部
2018/08/16(木) 18:48:51.47ID:1cDvfnJm
>>728
そのテキストのHPとかあるんじゃね
2018/08/16(木) 21:26:24.30ID:Z/EAAxtY
教えてください

マクロを登録したチェックボックスを用意して、ワンクリックでその隣のセルの値をコピーする
という簡単そうな事ができませんでした
Activecell.offset(,1).Copy
くらいの事でできると思っていました…
すみません助けてください
たぶんすぐ出来るとか豪語してしまいました
反省しています
2018/08/16(木) 21:31:43.44ID:W+10vliG
>>732
出来ませんでした、と謝ればいいと思う
2018/08/16(木) 21:46:48.30ID:BIfWFzcm
>>732
Private Sub CheckBox1_Click()
  CheckBox1.TopLeftCell.Offset(0, 1) = "←ここだよ"
End Sub
2018/08/16(木) 23:30:13.50ID:Z/EAAxtY
>>734
参考にしてできました!
ありがとうございました!!!
2018/08/17(金) 01:42:30.73ID:tOusYlvg
>>735
馬鹿は死ねよ
2018/08/17(金) 01:50:16.73ID:yjK/nJxZ
そんなに自分を卑下しなくてもいいぞ
2018/08/17(金) 07:22:56.68ID:nBQYbnk5
>>736
隗より始めよ
2018/08/17(金) 08:34:01.64ID:w1qAakJm
>>736
泣いて馬鹿を斬る
740デフォルトの名無しさん
垢版 |
2018/08/17(金) 17:20:05.57ID:lRSRxbIQ
with使うやつアホなの?
.で始まる部分を見るたびにwithを探しに行って確認する手間暇がかかって面倒。
2018/08/17(金) 18:01:20.36ID:KaaDwp63
普通の人が追うのに苦労するほどなら確かにWithの使い方としてはあまり良くない
ただ>>740の能力がなさ過ぎる可能性が微レ存
2018/08/17(金) 18:03:08.60ID:dZqaXnfX
>>740
何故頑なに変数使わんのか謎だよなw
一行に何度も.出てくるの見ると吐きそうになる
2018/08/17(金) 18:31:53.54ID:LWrcZ49g
with無くしてメソッドチェインできるようにAPI変えてくれ
2018/08/17(金) 22:49:53.19ID:Y+5hjotK
やだ
745デフォルトの名無しさん
垢版 |
2018/08/17(金) 22:57:11.00ID:zD2h2oDf
このスレもルビパー臭くなったなwプロさんwwwww
746デフォルトの名無しさん
垢版 |
2018/08/17(金) 23:20:18.52ID:vMaMvG23
>>740
オブジェクトの生成とWithを組み合わせるとスコープ(っぽいもの)の終了で
リソース解放してくれるのだけは重宝している。
2018/08/18(土) 00:16:22.71ID:u8ja/Ot0
>>746
その使い方以外あんまり使ってほしくない
.開始はなんというか、キョドる
748デフォルトの名無しさん
垢版 |
2018/08/18(土) 00:25:21.58ID:1Mn+50P1
>>747
.開始?

With Createなんちゃら〜
.なんかメソッド
End With

Nothing代入せずにデストラクタが呼ばれるのいいじゃない
2018/08/18(土) 00:33:56.94ID:u8ja/Ot0
そういやvbaのガベージコレクションってどうなってるの?
sub・functionが終わったらメモリから全部消えるのかな
750デフォルトの名無しさん
垢版 |
2018/08/18(土) 00:38:28.60ID:PRD/1v4M
>>748
C#のusing的な使い方になるってこと?
751デフォルトの名無しさん
垢版 |
2018/08/18(土) 00:52:41.00ID:QJ6qXFdU
プロさん出番やでーwwwww
752デフォルトの名無しさん
垢版 |
2018/08/18(土) 01:07:33.12ID:1Mn+50P1
>>750
単に End Withのタイミングで Class_Terminate が呼ばれるってだけだけど
Sub・Functionの終了を待たずにそのタイミングをコントロールできるのがいい。
2018/08/18(土) 02:05:15.49ID:Qu3u+5ap
>>750
なるほど、廃棄が前提ならアリやな。
でもVBA掲示板のプロっぽい風吹かしてるやつらは、廃棄する必要のないworkbookとかworksheetをワザワザwithする不思議。
2018/08/18(土) 02:35:51.37ID:gharGiQ8
ブルゾンちえみ
2018/08/18(土) 03:10:47.26ID:r01iwFGV
>>752
VBAのガベコレは参照カウンタ方式だから、参照がなくなったら廃棄されるだけ
変数に受けても、明示的にNothing代入すればその場で解放されるはずだからタイミングのコントロールはできる


>>753
そもそもWithは、単に何度も同じオブジェクト参照を書かなくて済むだけの機能だから
廃棄するかどうかとは関係ないしそんなものと絡めて使うべきではない
756デフォルトの名無しさん
垢版 |
2018/08/18(土) 09:04:47.19ID:1Mn+50P1
>>755
明示的にNothing代入するのがだるいって話さ
2018/08/18(土) 09:10:53.39ID:pAmB63kN
>>755
> 廃棄するかどうかとは関係ないしそんなものと絡めて使うべきではない
>>748みたいな奴ならEnd Withで廃棄されるだろ
難癖つけてるだけにしか見えん
2018/08/18(土) 11:11:44.78ID:HXszneG/
VBAで べき論 は不要
2018/08/18(土) 13:39:35.74ID:u8ja/Ot0
>>758
だよな
vbaなんてサクッとエクセルデータをどうにかしたり印刷の体裁整える程度でいい
そんなインストラクタだのガベージコレクションなんて考えて書く言語じゃない
2018/08/18(土) 14:07:43.88ID:WpMgA9bG
>>759
それもまたべき論
2018/08/18(土) 14:20:57.50ID:u8ja/Ot0
>>760
うん、知ってる
2018/08/18(土) 14:25:54.38ID:r01iwFGV
>>758
ああ、そうだな
VBAではっていうより、ここでは不要だな
どうせまともな議論にはならんしな
2018/08/18(土) 14:26:50.24ID:r01iwFGV
>>758
ああ、そうだな
VBAではっていうより、ここでは不要だな
どうせまともな議論にはならんしな
2018/08/18(土) 14:37:54.05ID:pHq61mgp
>>763
明確に賛成 vs 明確に反対
の罵り合いになるなら荒れても面白いんだけど、なぜかそうならんね
みな本題から逸れたところで言い争う
2018/08/18(土) 15:01:58.92ID:u8ja/Ot0
前提や環境が違いすぎるからな
2018/08/18(土) 15:33:37.30ID:OGMfrWDu
>>753
WorkbookやWorksheet等の組み込みオブジェクトであってもWithで参照保持した方が良い場合もある
実際比べてみると分かるがオブジェクト変数を使うとメモリを確保する分動作が重くなるし、一つの処理の中でWithを使わず何度も同じプロパティ参照を行えばその分計算量は増える

それなりに大きな配列を処理したり何百ものブックやシートを処理したりするプログラムになれば、この手の小手先の調整が大きく動作に影響したりするよ
2018/08/18(土) 15:50:10.99ID:u8ja/Ot0
オブジェクト変数って言っても中身は参照でしょ?
どんなポンコツPC使ってるんだ
768デフォルトの名無しさん
垢版 |
2018/08/18(土) 16:17:32.41ID:1Mn+50P1
>>766
With なんちゃら
  .Hoge
End With
の代わりに
Set ref = なんちゃら
として ref.Hoge
とするなら原理的に同じはずでは?
2018/08/18(土) 16:26:03.95ID:XAZ8inQ9
アマチュアのVBAユーザーだとインスタンスと参照の概念はよくわからないんじゃないかな
Java研修などでも新人が躓きやすいところだし勘違いしてもしょうがない
770デフォルトの名無しさん
垢版 |
2018/08/18(土) 16:33:12.97ID:lPI41hg1
VBA推しの人の前提条件がアプリのインストールも何もかも出来ないって会社の話でしょ?
そんな会社は特殊な極一部じゃん
普通はインストールも出来るしアプリも入れれる
でもそうなるとVBAを使う意味が全くなくなるから特殊な環境の話をこじつけてるんでしょ?
2018/08/18(土) 16:38:06.28ID:u8ja/Ot0
>>770
>特殊な極一部じゃん
中小企業にばかりいればわからないかもな
そこら中にあるぞ
772デフォルトの名無しさん
垢版 |
2018/08/18(土) 16:53:37.10ID:lPI41hg1
大企業が極一部じゃん
2018/08/18(土) 17:07:16.74ID:u8ja/Ot0
>>772
正論じゃん!
すまんかった
774デフォルトの名無しさん
垢版 |
2018/08/18(土) 17:19:14.72ID:XAZ8inQ9
本当にエクセルしか使わない大企業などというものが存在するのだろうか
具体的にどこの企業のことなんだ?
2018/08/18(土) 17:32:37.30ID:ktgzOwh8
やたらとメール重用で社内システムは古臭いwebアプリ
末端はこそこそエクセル開発ってイメージ
ただの偏見だけど
2018/08/18(土) 17:50:50.84ID:XAZ8inQ9
>>775
そんなんで仕事になるのかね?
大企業じゃなくて底辺か中小の話ではないのかそれって
777デフォルトの名無しさん
垢版 |
2018/08/18(土) 18:23:43.35ID:lPI41hg1
大企業からwebアプリでやってそうだけど
違うんだ
共有や同時接続が決定的にダメダメなエクセルで仕事しなけりゃいけないなんで気の毒だな
2018/08/18(土) 19:11:00.94ID:QbV6+C0c
大企業でも大抵は入れていいアプリはホワイトリストとかで持ってるし申請すれば大抵は通る
779デフォルトの名無しさん
垢版 |
2018/08/18(土) 19:24:59.50ID:Rl20PTNq
じゃあVBAしか使えないって大前提が崩れるじゃん
そしたらVBAなんて使う意味ないじゃん
VBAしか使えないのに色んな工夫して凄いなぁーって
とてつもなく面倒で生産性の悪い事をさせられてるんだなーって
2018/08/18(土) 19:43:20.54ID:g/6PiQSP
で、またC#だのなんだのでループ?
781デフォルトの名無しさん
垢版 |
2018/08/18(土) 19:54:33.41ID:Rl20PTNq
ループっても前提条件が大きく変わったんだから議論は初めてと言っても良いだろ
2018/08/18(土) 20:12:24.79ID:u8ja/Ot0
>>775
メールは使いにくい!チャットワーク導入!
→チャットワーク使いにくい!
→メールへ

って感じ
783デフォルトの名無しさん
垢版 |
2018/08/18(土) 20:34:54.41ID:1Mn+50P1
>>779
根本的なところで根拠がないんだよ
Excelが周りで使われているんだからVBAも当然使いたくなるだろう
784デフォルトの名無しさん
垢版 |
2018/08/18(土) 20:41:33.86ID:Rl20PTNq
今からVBAを覚えようとしてる人へ

他言語ならもっとシンプルで簡単にそして高速ですよ
それに開発ツールも遥かに強力だしインテリセンスも抜群に効くし半分の労力で10倍の生産性があるので無意味なVBAを覚えるなんて遠回りしない方が良いですよ
VBAは主に大企業で制約がとてもキツく何もインストールさせて貰えない環境で働かされてる人向けです
785デフォルトの名無しさん
垢版 |
2018/08/18(土) 21:15:29.15ID:1Mn+50P1
>>784
そんなあなたのイチオシは?
2018/08/18(土) 21:34:56.80ID:XAZ8inQ9
俺は.NETに惚れ込んでMS好きになったから、MSファミリの代表格であるExcelやVBAも好きになりたい
でも、ExcelとVBAの使い道を必死に探しても、残念ながらC#やPowerShellには勝てない日々が続いている
なんでもいいから、VBAコミュニティが努力して革命的な利用方法を発明してくれればいいんだけど
787デフォルトの名無しさん
垢版 |
2018/08/18(土) 21:42:59.05ID:ddghJ7gy
>>784
VBAは大企業では大いに役に立つわけですな
788デフォルトの名無しさん
垢版 |
2018/08/18(土) 21:50:10.80ID:ddghJ7gy
ここはVBAのスレだから
VBAのポジティブなところにフォーカスしたいよね
その他の言語は専用スレに行っていただくとして

大企業で活かせるっていうのは良いですよね
2018/08/18(土) 22:00:30.77ID:g/6PiQSP
>>786

お前が.NETに惚れ込んでいようとなんだろうとそんなのはこのスレに何の関係もない
2018/08/18(土) 22:09:36.45ID:XAZ8inQ9
>>789
VBAのメリットや効果的な運用方法を教えてください
791デフォルトの名無しさん
垢版 |
2018/08/18(土) 22:13:23.22ID:FUzlnCg0
前提条件が崩れてアタフタしとる
ちなみにお前は大企業の書類選考も通らん
なので好きなだけインストール出来る環境なのにVBAでのたうちまわってる
792デフォルトの名無しさん
垢版 |
2018/08/18(土) 22:17:28.63ID:ddghJ7gy
>>790
Wikipediaから引用するけど

Excel、Access、Word、Outlook、PowerPointなど
Officeのアプリケーション・ソフトウェアの機能を拡張できる。

Microsoft OfficeシリーズにはVBAのコード作成・編集ソフトが最初から付属している
使用を始めるにあたり、Office以外の特別なソフトの用意やセッティングを要しない。
文献やネット情報も多く、最低限の学習で誰でも手軽にプログラミングが始められる。
実行も容易。

効果的な運用方法はわかりません。
793デフォルトの名無しさん
垢版 |
2018/08/18(土) 22:25:10.50ID:ddghJ7gy
大企業の書類選考を通らない人は中小企業に就職するしかありませんね。

中小企業に就職したとしても大企業の下請けとして仕事することも在りますので
大企業で使われているVBAは中小企業でも使われることは自明なわけであります。

まとめるとVBAは大企業で大いに役立つし
中小企業でもその知識や技術は重宝されるよってことです
2018/08/18(土) 22:30:17.99ID:XAZ8inQ9
GoogleやMicrosoft、Amazonなどの大企業ではエクセルVBAを推奨してほかのツールはインストール禁止なのでしょうか?
795デフォルトの名無しさん
垢版 |
2018/08/18(土) 22:30:34.00ID:FUzlnCg0
エクセル以外は何もインストール出来ない環境だからって前提は変更で良いのね
その上で実は色んな言語もIDEも試せるけどエクセルにはVBAが1番ピッタリだって事に変えとけば良い?
2018/08/18(土) 22:40:06.27ID:bgbHuJd/
その前提だとVBAが一番ってことにならないからダメ
2018/08/18(土) 22:43:37.98ID:ub6IzT+t
>>768
違う
オブジェクト変数は4バイト以上のアドレス領域をメモリ上で占有する
Dimとかで宣言すると、その変数に何も代入されておらず処理に全く関与していない状態でも4バイト以上消費することになる

一方、With文中で取得した参照はブロックスコープ内でしかROMを占有しない

この違いは案外大きいよ
798デフォルトの名無しさん
垢版 |
2018/08/18(土) 22:45:52.52ID:FUzlnCg0
今のマシンで4バイトのメモリなんて気にする必要ないだろ
ファミコンか!
2018/08/18(土) 22:48:22.15ID:u8ja/Ot0
>>797
どんなしょぼいメモリなんだよwww
2018/08/18(土) 22:50:44.29ID:XAZ8inQ9
>>792
メリットとしては弱いかな

>>795
VBAがExcelにピッタリというのは実は根拠に乏しい
本当にピッタリならVSTOやExcel Python、Excel JS APIなどといった他の言語への需要は生まれなかったはず
ユーザーの素直な気持ちとしてVBAはExcelにふさわしくないのでは? という思いがあるから、他の言語への需要があるんじゃないかな
801デフォルトの名無しさん
垢版 |
2018/08/18(土) 22:57:23.43ID:1Mn+50P1
>>797
大きいわけないと思いまーす

>>800
それらって成功してるの?(曖昧な質問)
2018/08/18(土) 23:05:53.57ID:GFBy1Kxc
ROMww ファミコンかよw
2018/08/18(土) 23:10:13.31ID:XAZ8inQ9
>>797
もうやめとけ
そんな微細な違いでは8:2法則に飲み込まれてパフォーマンスには影響しない
そもそもコンパイルされたらどっちの書き方でも関数やプロシージャの消費するスタックサイズは同じだろう
それともなにかVBAは分岐によって動的にスタックサイズを変えているとでもいうのか?
そんなのは4バイトのメモリをケチるよりももっと無駄なコストだ
804デフォルトの名無しさん
垢版 |
2018/08/18(土) 23:16:38.19ID:ddghJ7gy
>>800
最強だよ!
805デフォルトの名無しさん
垢版 |
2018/08/18(土) 23:17:49.14ID:ddghJ7gy
VBA最強伝説の幕開けである
2018/08/18(土) 23:26:02.96ID:u8ja/Ot0
vba、当時は言語が入り乱れていてbasicでもいいかなって感じだったけど
もう今やBasicベースの言語が壊滅的すぎてな

今ならJS、python、C#どれでもいい
個人的にはweb系火事tているのでJSで掛けるとありがたい。
807デフォルトの名無しさん
垢版 |
2018/08/18(土) 23:37:12.67ID:ddghJ7gy
>>806
GoogleスプレッドはJSを採用してるね
たしかに良い

とある大学の情報の先生がOCamlを教えたあとに
Javaを教えるとJavaは難しいですと言ってくる生徒が多いって言ってた

Excelのマクロと関数型言語は親和性高いから
F#とかこれから覚える人にとってはVBAよりもわかりやすいかも
808デフォルトの名無しさん
垢版 |
2018/08/18(土) 23:46:37.13ID:FUzlnCg0
優秀な言語の条件
情報やサンプルの豊富さとIDE
F#なんてVBAより奇特
マイナーが好きなの?
2018/08/18(土) 23:47:08.42ID:u8ja/Ot0
>>807
JSは本当に使いやすくていいね
昔は定数「undifined」に代入出来たりとやんちゃな言語だったけど、大分更生した

vba自体は嫌いじゃないけど、折角プログラム覚えたのに、
他言語へのつぶしが効かないのがちょっと勿体無い

ただ、F#はちょっと・・・
せめてGoとかで
810デフォルトの名無しさん
垢版 |
2018/08/19(日) 00:04:11.93ID:VVi9Y61v
>>808
OCamlが好きなの
F#はOCamlの.NETバージョンだから

>>809
Goも良いよね、ミニマリズムって感じ
あれ設計した人は良い意味で変態だよ
もう言語ありすぎて追い切れないけど
2018/08/19(日) 00:15:19.63ID:HmjF4wKY
VBAの一番の問題は、馬鹿が作ったVBAをもっと馬鹿には理解できないことだろ
812デフォルトの名無しさん
垢版 |
2018/08/19(日) 00:26:53.36ID:psltJnDY
>>811
もしVBAがなければその現象がほかの言語・環境になだれ込むんだぞ?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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