Excel VBA 質問スレ Part54

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/05/26(土) 20:37:37.74ID:Lty78diJ
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK


最近プロによる書き込みが多々見うけられますが
彼らに絡むと話がこじれるので質問したい方は適当にスルーしてください


※前スレ
Excel VBA 質問スレ Part53
http://mevius.5ch.net/test/read.cgi/tech/1524823358/
2018/07/04(水) 07:21:03.50ID:Ets3rlLA
>>452-454
早速にありがとうございます。
確かに転記後にソートでどうにでもなりそうですね。
できれば転記時にできればとおもっておりました。
カーソル位置を3行目にする事で解決はおっしゃるとおりですね。
ただ私の最初の前提が不十分な解説のため申し訳ありません。データが増えていった場合でも下から3つを取り出したい場合はどうすればよいか苦慮しています。
ExcelVBAのように、Offsetが使えたらデータが増えていっても下から3つだけを取り出すという風にできていいなと思うのですが。
2018/07/04(水) 09:26:05.39ID:pALk88+D
>>455
topを使って馬鹿はいい加減に引っ込め
2018/07/04(水) 18:30:51.27ID:uOrTSuCX
>>455
現在行をn-3行目にしとけば良いんじゃない

>>456
単純にtop取るんじゃなくて、descでorder byしてtop取ったやつをもう1回order byする必要があるんだが
そんなSQLがすらすら書けるようなレベルのやつはこんな質問しないし
2018/07/04(水) 18:39:25.28ID:+s3AGVWW
もう一回order byは必要無いだろ。
Excel側で対処すれば良い。
2018/07/04(水) 18:41:40.31ID:pALk88+D
>>457
こいつみたいに、後から出てきて回答してることをグタグタ書く馬鹿も来なくていいよ
2018/07/04(水) 19:03:04.14ID:uOrTSuCX
>>458
それが自分でできてりゃ
>SQLのORDER BYを使うと5、4、3の順となりなかなかうまくいきません。
てな事にはなってないだろう
2018/07/04(水) 21:37:47.81ID:w3aVzChY
>>451
このあたりを参考にしてみ
http://www.accessclub.jp/bbs2/0051/beginter16860.html
462デフォルトの名無しさん
垢版 |
2018/07/04(水) 22:03:13.56ID:gFgZc5FG
EAK
2018/07/05(木) 07:07:56.16ID:tfdDHYdR
マクロ・VBAの勉強がしたいです
どのような方法で勉強を進めるのが理想でしょうか
エクセルのレベルはVLOOKUPなどのメジャーな関数を使える程度のレベルです
ちなみに会社員です
2018/07/05(木) 07:22:05.89ID:ydS/c7Yy
>>463
何をしたいのか明確な目的が必要
楽したい!ってモチベーションがないと続かないよ
トライ&エラーを繰り返すこと
教本だけでは身に付かないから、実践は必ず必要
2018/07/05(木) 07:38:50.41ID:p94kIUt1
>>463
Vlookupの欠点を知ってるよね?
2018/07/05(木) 07:44:26.36ID:nUGwrBqJ
vloookupをdisる様になったらエクセル使いとして一人前
467デフォルトの名無しさん
垢版 |
2018/07/05(木) 08:33:49.18ID:rMERr/jv
>>463
今からプログラミングを覚えるならVBAなんて化石言語はやめましょう
言語的に近いC#がいいと思いますよ
VBA程度の事は全て出来ますしもっと色々と出来るので推奨
2018/07/05(木) 08:39:30.09ID:9AXPA/lJ
体系的に勉強する価値なんてないよ
やらなきゃいけないことをググって試してみての繰り返し
プログラミングのスキルやセンスを磨きたいなら他の言語で学んだ方がいい
2018/07/05(木) 14:06:51.76ID:HAlufd/5
>>463
こんなところで聞かなきゃいけない時点でもうダメだな
470デフォルトの名無しさん
垢版 |
2018/07/05(木) 18:59:11.64ID:d3LrKkRn
>>463
VBAを覚えて何がしたいのか知らんが、仕事で活用するなら
まず、エクセル関数をもっと覚えて関数で何とかできるようになりましょう

事務処理ならエクセル関数だけで大概のことはできる
VBAが必要な場面はあまり無いと思う。せいぜいファイル操作くらいか
471デフォルトの名無しさん
垢版 |
2018/07/05(木) 19:22:05.35ID:RM/sNIBL
すいません、processingについてのスレッドはありますでしょうか?
2018/07/05(木) 19:26:01.95ID:gxCIuarn
使いわけでしょ。
数千あるチェック項目の内、1日100個ぐらいずつをチェックしていき、その集計結果で1日の結果を関数で出し、更に1ヶ月のト―タルなんかを関数でやってたら重くてどうにもならなくなったりするし。

銀行でDBから取ってきたデ―タが辻褄があってるかを調べるなんて仕事をしたことが有るんだが、その為にシステム組んでる側の(と言ってもそいつが組んでる訳じゃない)奴がチェック用に用意したsumproduct多用ブックは酷かった。
触る度に5分とか10分とか待たされた。
VBAで組んだら一瞬になったけどね。

自動再計算を切るのも諸刃の剣だし。
2018/07/05(木) 21:09:35.03ID:YSTvTCwo
プログラマじゃない普通の会社員がExcelを使うのにVBA勉強すんのは普通だろ。
なんで不必要なC#とかやらにゃならんのだ。
プログラマってほんと頭でっかちやな
474デフォルトの名無しさん
垢版 |
2018/07/05(木) 21:17:37.90ID:fo69RQFS
VBAって二十年くらいなんの進歩もないよね
この言語を覚えて次に全く役に立たないじゃん
キャリアアップの為にも意味ないよね
2018/07/05(木) 21:30:31.77ID:xKEzIF3G
>>473
プログラマじゃないとしても今時エクセルだけじゃ話にならんでしょ
誰だって日常的にディレクトリ階層とエクセル以外のファイルを扱う
ツールの拡張がスクリプト言語になってることは良くある
自分のWindowsを管理するにはpowershellを使うね
得に最近需要が高まってるのはREST APIやスクレイピング技術だな
いずれもVBAでもできんことはないが果てしなく古臭い構文と開発環境、貧弱なライブラリのせいで死ぬほど生産効率悪いんだよね
マゾにはオススメかもしれんがノーマルな人にはオススメできんな
2018/07/06(金) 00:17:05.86ID:VZEPTATI
>>474
VBAは進歩がないのがメリットとも言える。
pythonなんかは2と3で動作仕様が異なる上、モジュールのバージョンも気にする必要があって、別PCで同じ環境を構築しようとすると結構面倒。
その点、VBAはどんなPC、エクセルのバージョンであっても安定して動作するって意味では楽だな。

色々言語触ったけど、自分の結論としてはどの言語が良い悪いではなく、結局適材適所で使い分けが大事。
477デフォルトの名無しさん
垢版 |
2018/07/06(金) 00:21:52.27ID:M8GmHm7a
WindowsUpdateの影響で個々のPCで不具合でまくるが
2018/07/06(金) 00:23:59.34ID:BGc41+3f
もっと短いのにならないかな。
Vlookupとか長いので、GonとかPnとかさ。
Sheet1も地味に長いよね。
Werでいいよね。
2018/07/06(金) 01:20:50.99ID:yPJnVsMJ
事務員はプログラマじゃないからVBで十分
他の言語を扱うなら担当の部署に回すか外注する
部署で自分しか扱えない言語を触りだしたら間違いなくそいつは地雷
480デフォルトの名無しさん
垢版 |
2018/07/06(金) 04:19:54.50ID:C9bArYB2
iPad上でもWinで書いたVBAファイルは動きますか?
ファイルをやり取り出来る?
2018/07/06(金) 05:32:38.53ID:ST4fD14t
「エクセルで十分」ってよく聞くフレーズだけど
「料理するには石器で十分」のような強烈な違和感を感じる
2018/07/06(金) 06:34:19.51ID:p7OwDDVB
VBAって結構リストビューになかされない?最近win10になったけどバグる。
そもそもリストビュー使わない?
2018/07/06(金) 07:10:52.75ID:2QUNMYcg
>>480
Office365じゃないとVBAは動かなかったはず。ファイルはやり取り可能だが
2018/07/06(金) 07:19:10.36ID:0k7k2lmp
>>476
> その点、VBAはどんなPC、エクセルのバージョンであっても安定して動作するって意味では楽だな。
VBAはいいとしてもその上のExcelの動作がバージョンによって変わる
特にグラフ周りはグダグダ
2018/07/06(金) 07:20:30.17ID:CLCbtFoc
普通の事務職がVBAを勉強したいっていう何の変哲もない書き込みにおまえら首の皮を取ったようにレスしててワロタ
おまえらみたいなのが少数派だってことを認識した方がいいぞ
486デフォルトの名無しさん
垢版 |
2018/07/06(金) 07:22:51.27ID:X6vsJP5v
>>485
首の皮を取ったは違うよね
2018/07/06(金) 07:37:29.57ID:2QUNMYcg
会社員=事務員じゃないし、首の皮取ったら職失うし
488デフォルトの名無しさん
垢版 |
2018/07/06(金) 07:48:02.36ID:3tEKTxuN
悪いこと言わんからちんこの皮は取っとけよおまえら
2018/07/06(金) 08:11:08.51ID:CLCbtFoc
鬼の首OTL
2018/07/06(金) 08:13:48.33ID:CLCbtFoc
もう俺はおまえらに何も言えない
首の皮を取って出直してくる
2018/07/06(金) 08:17:03.43ID:ST4fD14t
本気でプログラミングするわけでもない事務員なら、より簡単に色々出来ることが多い言語を選ぶのが正解だろ?
マゾはVBAから始めてもいいけど完全に選択肢間違えてっぞ
2018/07/06(金) 08:28:53.67ID:yPJnVsMJ
>>491
本気じゃないからVBでいいんだよ
2018/07/06(金) 08:36:24.85ID:2QUNMYcg
ExcelVBAを学びたい人の目的はExcel上での自動化なので、他の言語提案する馬鹿は、要求仕様もRFPも設計も出来ない馬鹿だと思う
2018/07/06(金) 09:45:05.51ID:1/5hArIQ
真に事務屋に必要なのはAutoHotkeyとかUWSCみたいな即物的なマクロツール
2018/07/06(金) 10:26:11.58ID:VwMR5YXD
つーかいい加減VBAなんてゴミ捨てろよ
手抜き目的でプログラムなんて興味なしが大半なんだからそのへん雑なjsが最適だろ
型だのSetだのCallだのいらねーんだよハゲ
2018/07/06(金) 10:50:34.44ID:Qi0gjM6/
えっ、エクセルでJS使えるの?
2018/07/06(金) 10:54:51.32ID:aDF6cFGR
エクセルと心中する気持ちがある
目指せエクセルマスター
それぐらい本気で取り組む気持ちがあるならVBA
そこまでの覚悟がないなら他の簡単で使い道が多い言語にしたほうがいいね
2018/07/06(金) 11:43:53.94ID:XiAowgcv
>>496
カスタム関数がjsで書けるようになる。
現在ベータテスト中のはず。
またpython対応も進められてるはず。
499デフォルトの名無しさん
垢版 |
2018/07/06(金) 12:22:05.24ID:qobvoXhT
ここぞとばかりに湧いてきよった教えたがりのプロさん達w
2018/07/06(金) 12:25:31.91ID:WR4Eg6+W
>>484
エクセルのグラフや統計ツールは場当たり的な作業で使うもので、自動化には向かない。
そういうのはpythonとかの方がいいよ。
2018/07/06(金) 12:53:44.00ID:0k7k2lmp
>>500
エクセル並のグラフ作れるライブラリ教えてくれたら考える
2018/07/06(金) 12:58:51.82ID:2QUNMYcg
ExcelのjavaScript対応なんて、Googleスプレッドシートの後追いじゃないの?
サーバーサイドじゃなくクライアントで動くなら助かるけど、
でたぶん、APIがあるだけで関数書式はVBAと同じ手続き踏まされると予感
2018/07/06(金) 13:01:16.07ID:yPJnVsMJ
excelは圧倒的な普及率が強み
多少使い勝手が悪くても使う理由
2018/07/06(金) 13:18:06.25ID:LdCqv7/c
>>502
もちろんクライアントサイド。google spreadシートのはサーバーサイドでちょっと複雑な処理書くと制限に引っ掛かったりで非常に遅く、jsの仕様もes5相当の古い書き方しかできず辛い。
その点excelはedgeのjsエンジンであるchakraコアがそのまま動き最新の機能が使える。
まさかのasync/awaitまで使えて夢が広がる
2018/07/06(金) 22:07:27.55ID:IfC5DM7h
dim rng as range
for each rng in selection.rows
以下略

こんな感じで複数行選択して各列に対して操作を行いたいんですよ
でその操作の中で行をコピー・挿入だったり削除だったりするんですけど、それがselection内だったりするとselectionそのものが変わっちゃったりするんです
複製された行に対しても操作しようとしたり、削除されて上に1行繰り上がって本来操作されるべき列が飛ばされたり
なんかいいアイディアないですかねぇ

>>482
同じことあった。ライブラリのバージョン違うと動かんのねあれ
客が使うオフィスのバージョン確認したわ
2018/07/07(土) 00:17:11.58ID:/HOykfzr
>>505
動作を理解していない馬鹿頭の問題だろ
2018/07/07(土) 01:41:26.84ID:rsjeXCCL
どなたか教えて頂けませんか。
Debug.Printが毎回追記されていくのがうっとうしくて、下記のような記述をしました。

Private Sub im_del()
Application.VBE.Windows("Immediate").SetFocus
SendKeys "^a", False
SendKeys "{Del}", False
End Sub

Sub ABCDE()
Call im_del
Debug.Print "ABCDE"
End Sub

ところが、一瞬"ABCDE"の記述が出現した後、すぐ消えてしまいます。
"ABCDE"を出力したあとに、ctrl+A、Del、が処理されているように見えるんですが、これは何故起こってるんでしょうか?
2018/07/07(土) 02:47:26.85ID:74QXb5lv
間にwaitを入れてみようや
2018/07/07(土) 04:25:45.76ID:nRfAjRal
>>507
SendKeysはWindowsさんに伝言をたのむ命令
その伝言が伝わる前に直接連絡した方が先に届いてもおかしくない
DoEventsいれてみ
2018/07/07(土) 08:40:44.63ID:oHL/B82Y
ここはほんとうに素晴らしいスレッドですね。 
>>456とか>>459とか>>466とか雰囲気悪くするだけだからもうこなくていいよw
511デフォルトの名無しさん
垢版 |
2018/07/07(土) 11:39:14.52ID:ZbC6MOHz
>>510
こいつも雰囲気悪くしてるからw
512デフォルトの名無しさん
垢版 |
2018/07/07(土) 12:19:02.02ID:W328YIg6
>>511
おまえが一番雰囲気悪い
2018/07/07(土) 12:25:42.85ID:/HOykfzr
>>510
ゆとり世代?
2018/07/07(土) 13:34:48.20ID:E0dVopgV
5chに来て何言ってんだ
建前抜きにした罵詈雑言の罵り合いも殺伐とした空気も煽りも自演も5chの醍醐味だろう
綺麗なインターネットを求めてるなら実名でブログでもツイッターでもやりゃいい
2018/07/07(土) 13:54:07.60ID:fvXZFBMd
pythonは次期Excelに搭載されないことが決定しただろ馬鹿
2018/07/07(土) 14:08:45.28ID:IMiijYtR
マジかーvbaとpythonとjsの悪魔合体楽しみにしてたのに
2018/07/07(土) 14:29:36.35ID:gjkL5OHQ
ゆとり世代の知恵遅れの人達はいちいち誉めてあげないとダメだよ
518デフォルトの名無しさん
垢版 |
2018/07/07(土) 15:03:05.21ID:T1XdHa2q
リアルではみんな良い人なんだろうな
そうだろ?
クソ野郎ども
2018/07/07(土) 15:28:46.37ID:E0dVopgV
そりゃ外にいる間は外向けの性格だからな
2018/07/07(土) 15:30:15.90ID:IMiijYtR
真夜中は別の顔って言うだろ?
2018/07/07(土) 15:47:06.11ID:7NNal+IR
オニーチャン(*・∀・*)エッチー!!
2018/07/07(土) 16:25:39.38ID:kAZOuKsA
Sendkeysは基本避けるべき。
お手軽だからその時だけ動けば良い場合なんかに使うこともあるけど、制御できるようにWin32や別のAPI使うべきだよ。
2018/07/07(土) 16:28:50.65ID:kAZOuKsA
ああ、でもイミディエイトは簡単にはいかないんだった。
Win32でどうにかしようとして一発でExcel落ちること多数。

俺もSendkeys以外で操作出来ないや。
524デフォルトの名無しさん
垢版 |
2018/07/07(土) 18:36:53.15ID:T1XdHa2q
>>515
これホント?
決定したの?
525デフォルトの名無しさん
垢版 |
2018/07/07(土) 19:36:53.17ID:lX+hrShl
Pythonが使えるようになったとして、Rangeの扱いはどうなるんだろ?
xlRangeとか名前変えて凌ぐのかな。
xlPyter NoteBookとかもうワケがわからなくなりそうな気がする
2018/07/07(土) 19:44:46.42ID:Ojk7x3Ta
プロどもウザいからレスすんな糞が
2018/07/07(土) 20:14:51.88ID:E0dVopgV
アマチュアの皆さんはプロの話についてこれないでしょう
あるのかしらないけど事務員板などに行って、そっちで同レベル帯の人達だけでディスカッションすれば捗るのでは?
2018/07/07(土) 20:49:13.07ID:Ojk7x3Ta
むしろプロどもがどっか行けや
2018/07/07(土) 20:51:26.92ID:8faVQinY
違いない。ここはVBA質問スレなんだからな
530デフォルトの名無しさん
垢版 |
2018/07/07(土) 21:06:39.47ID:3p7nZui6
最近質問ないし
2018/07/07(土) 23:21:18.94ID:shiDneoC
無いんなら黙っとけ
2018/07/07(土) 23:27:07.08ID:4SMSQlvo
python実装するとかしないとかそういう話はどこで知るんですか?
2018/07/08(日) 00:24:11.25ID:UAO6DzWD
スマートニュース
2018/07/08(日) 00:51:38.64ID:NWQ82qHd
ID:Ojk7x3Ta
知的障害者?それともただの馬鹿?
535デフォルトの名無しさん
垢版 |
2018/07/08(日) 02:16:28.17ID:1rJAxozS
ID:Ojk7x3Ta
重度の妄想癖のある統合失調症患者
近いうちに行政の方に保護される予定です
2018/07/08(日) 02:32:21.70ID:GTuulETc
荒らし(プロ?w)が開き直って人格攻撃してるw
537デフォルトの名無しさん
垢版 |
2018/07/08(日) 02:41:06.85ID:1rJAxozS
>>536
でVBAの質問は?
何か聞きたい事はないの?
ないならキエロ
538デフォルトの名無しさん
垢版 |
2018/07/08(日) 05:58:21.86ID:4Xu9JpUJ
質問です
エクセルでゲームを作っている初心者ですが
セルの背景に風景画を設定し、
それをたまに切り替える処理は可能ですか?
特にセル内にはアイテムjpgを表示して、その背面に風景画を
表示させたいのですが
2018/07/08(日) 06:23:17.01ID:GhYI1ZI5
普段事務系でVBAを利用しており大変役立っているのでVBAがボロクソ言われているのに衝撃を受けました。もっと良い方法があるのなら是非知りたいです。
他の言語の方がいいというお声をちらほら拝見したのですが、例えばエクセルで集計や管理しているデータを仕訳化して会計システムに読み込ませるようなケースでは他の言語の方が良い場合があるのでしょうか。
それとも、そもそもでエクセルを使っている場合はやはりVBAの方が向いているのでしょうか。
エクセル使っている時点で糞というご意見もあるでしょうが、、、
2018/07/08(日) 06:33:19.33ID:PI8C5Cu3
>>539
>エクセルを使っている場合はやはりVBAの方が向いているのでしょうか。
現状その通り、将来的には分からんってだけ
2018/07/08(日) 08:22:47.98ID:hRNyX0hA
>>410
instr使って26*2回loop回して判定すればいいよ
2018/07/08(日) 08:42:38.55ID:8kUPZF7b
>>539
データ入力まではエクセルでOK
表形式のデータ入力ならエクセルが便利ってのは事実だ

入力したデータを読み込み、なんらかの計算をして、別のシステムと連携する
といった処理は他の言語を使ったほうがいい
データの読み込みはExcel.Applicationのおかげでどの言語でもできるし各言語にもっと良いライブラリがある場合もある
一旦データを読み込んでしまえば後の処理はエクセルから独立して作ることができるのでエクセルの制約に縛られることがなく快適だ

VBAはイベントハンドラなどエクセルの操作を拡張するちょっとした処理を定義する場合に仕方なく使うものと割り切ろう
例えば表形式のデータ入力を補助するちょっとした処理を作りたいな、と思ったらVBAでOK
2018/07/08(日) 09:07:44.23ID:w46/Jlv9
またパワーシェルキチガイやC#キチガイなどが降臨してくる悪寒 w
2018/07/08(日) 10:58:47.60ID:VlCTSpWI
textboxが3つあって仮にABCとして、enterイベントでエクセル読み取ってlistboxに追加。追加されたものをダブルクリックしたらtextboxに入れる。

A→追加→dクリック→Aに追加
B→追加→dクリック→Bに追加

textboxに追加する際にtextboxを特定するにはどうしたらいいですか?
2018/07/08(日) 12:55:49.90ID:Gx9TRn56
>>544
日本語をまともに書けるようになってから出直してこい
そんな頭だからわからんだけ
2018/07/08(日) 13:46:29.05ID:JqVrR2gz
>>545
おまえじゃま
547デフォルトの名無しさん
垢版 |
2018/07/08(日) 13:57:15.04ID:RDaThQGn
>>544
意味わかんねえから誰も答えらんねえ

enterイベントって何よ?そのイベントはどこから発生する設定なわけ?

"エクセル読み取って"とは?

listboxに追加されるのはエクセル?w

最後に、なぜlistboxからtextBoxに追加する?
548デフォルトの名無しさん
垢版 |
2018/07/08(日) 14:25:14.30ID:2En7rgQR
>>544
実現したい事を一個づつ分けてみては?
ちょっと意味が分からない
2018/07/08(日) 14:50:14.10ID:+Ya/8hB+
エスパーしてみた

textboxが3つ(a,b,c)とlistboxが1つあって、
いずれかのtextboxに値を入力してenterを押下すると、その値がlistboxに追加される。
(その際に、どのtextboxから追加されたのかも情報として保持しておく)
listbox側でアイテムをダブルクリックすると、そのアイテムを元のtextboxに再度表示させる。

というような動作がしたいのではなかろうか?
2018/07/08(日) 16:00:48.38ID:VlCTSpWI
説明下手ですまん。
textbox a b c3つ。
listbox 1つ。

listboxにはa b cにはそれぞれ違う入力候補が表示される。
textboxがフォーカスされるとエクセルから読み取ってlistboxに入る。
ここまでは出来た。

抽出された、listboxから選んでそれをダブルクリックでtextboxに入れたい。
その時に入れるべきtextboxの保持の仕方が知りたい。出来ますか?
551デフォルトの名無しさん
垢版 |
2018/07/08(日) 16:10:27.07ID:4Xu9JpUJ
>538も頼む
2018/07/08(日) 16:15:19.97ID:NWQ82qHd
>>550
お前馬鹿なの?
オブジェクト名は何のためにあると思ってるの?

>>546
答えもしないお前が引っ込め
2018/07/08(日) 16:29:59.39ID:GTuulETc
listbox1のリスト要素は textbox a,b,c選択毎に変わる。a選択時にはa用要素、b選択時にはb用要素...と。
ユーザーがリストの要素をダブルクリックした時に目的のboxに入力させたい。て話ね。
単にコードの内部で変数維持すりゃいんじゃないの?
2018/07/08(日) 16:51:15.17ID:C6I7YKm0
>>552
そんな怒るなって
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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