X



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


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


※前スレ
Excel VBA 質問スレ Part53
http://mevius.5ch.net/test/read.cgi/tech/1524823358/
0434デフォルトの名無しさん
垢版 |
2018/06/28(木) 14:23:59.86ID:vmNCa+jC
>>431
すいません、切り上げです。
>>432
マクロの結果が123.1だったら124にしたいってことです
>>433
切り上げたいセル=そのコードでいけますか?
0436デフォルトの名無しさん
垢版 |
2018/06/28(木) 17:03:23.93ID:vmNCa+jC
関数でだけでいいですよね。
ありがとうございます
0437デフォルトの名無しさん
垢版 |
2018/06/28(木) 17:16:56.61ID:gmVEqVTK
切り上げ程度の簡単な処理でも、VBAだけで全部作るよりWorksheetFunctionの方が速い?
0439デフォルトの名無しさん
垢版 |
2018/06/28(木) 21:14:43.44ID:5sS5K7lt
めんどいのに意味のないレスはしたくなる馬鹿のジレンマ
0441デフォルトの名無しさん
垢版 |
2018/06/29(金) 14:09:13.49ID:pKfq68i8
ジャップ企業「わざわざ車輪の再発明をするこたぁねー」
アップル「iPodでウォークマンを再発明しました!」
アップル「iPhoneで携帯電話を再発明しました!」
アップル「iPadでタブレットを再発明しました!」
0442デフォルトの名無しさん
垢版 |
2018/06/29(金) 14:32:14.75ID:JaOW7x6U
iPodがウォークマンの再発明としか思えないから
日本からああいう製品は出なかったんだろうな
0443デフォルトの名無しさん
垢版 |
2018/06/29(金) 15:12:37.97ID:mqfybBJV
アップルの成功はAppStoreをオープンにしてアプリを爆発的に増やしたこと
日本企業はオープンにせず独自企画が好きだもんな
iPodの頃なんて大して注目されてなかったし
0444デフォルトの名無しさん
垢版 |
2018/06/29(金) 18:29:20.51ID:izu8oDQ2
どこがじゃ。
全然オープンじゃねえだろ。

iPodのインパクトだろ。
こういうものはガジェオタが飛びついて一般に浸透してくから、最初は一般に注目される必要は無い。

デザインの力は大きかった。
0445デフォルトの名無しさん
垢版 |
2018/06/30(土) 06:54:28.54ID:9Ry7JbLA
条件付き書式って名前とかタグみたいな個を識別できるようなプロパティないの?
条件にごちゃごちゃ付け加えると重くなるからvba側で操作したいんだけど
特定できそうなところでなんちゃって判定するしかないのこれ
0447デフォルトの名無しさん
垢版 |
2018/06/30(土) 12:09:38.19ID:CxGNiw/z
>>446
> ない上に知らん間に増殖する
そうなんだよね
条件付き書式の整理とか統合とかのコマンドがほしいわ
0449デフォルトの名無しさん
垢版 |
2018/07/03(火) 15:03:44.94ID:Jdc/5p+U
>>447
確かに欲しい。でも作ろうと思えば作れる事に気がついた。
追加されるとは考えられないしやるか・・
0451デフォルトの名無しさん
垢版 |
2018/07/03(火) 23:35:17.33ID:sZmhnLl0
ACCESSのフィールドをExcelに転記するとき、
例えばそれぞれ
1
2
3
4
5
と入っているレコードを
下から3つを転記したい(3、4、5の順で)場合どのようにすればよいのでしょうか?
CopyFromOrdersetでRowsMaxを3にすると1、2、3となり、下の3件3、4、5の順では転記できないでしょうか?
SQLのORDER BYを使うと5、4、3の順となりなかなかうまくいきません。
どなたか解決策を教えていただけないでしょうか?
0455デフォルトの名無しさん
垢版 |
2018/07/04(水) 07:21:03.50ID:Ets3rlLA
>>452-454
早速にありがとうございます。
確かに転記後にソートでどうにでもなりそうですね。
できれば転記時にできればとおもっておりました。
カーソル位置を3行目にする事で解決はおっしゃるとおりですね。
ただ私の最初の前提が不十分な解説のため申し訳ありません。データが増えていった場合でも下から3つを取り出したい場合はどうすればよいか苦慮しています。
ExcelVBAのように、Offsetが使えたらデータが増えていっても下から3つだけを取り出すという風にできていいなと思うのですが。
0457デフォルトの名無しさん
垢版 |
2018/07/04(水) 18:30:51.27ID:uOrTSuCX
>>455
現在行をn-3行目にしとけば良いんじゃない

>>456
単純にtop取るんじゃなくて、descでorder byしてtop取ったやつをもう1回order byする必要があるんだが
そんなSQLがすらすら書けるようなレベルのやつはこんな質問しないし
0460デフォルトの名無しさん
垢版 |
2018/07/04(水) 19:03:04.14ID:uOrTSuCX
>>458
それが自分でできてりゃ
>SQLのORDER BYを使うと5、4、3の順となりなかなかうまくいきません。
てな事にはなってないだろう
0462デフォルトの名無しさん
垢版 |
2018/07/04(水) 22:03:13.56ID:gFgZc5FG
EAK
0463デフォルトの名無しさん
垢版 |
2018/07/05(木) 07:07:56.16ID:tfdDHYdR
マクロ・VBAの勉強がしたいです
どのような方法で勉強を進めるのが理想でしょうか
エクセルのレベルはVLOOKUPなどのメジャーな関数を使える程度のレベルです
ちなみに会社員です
0464デフォルトの名無しさん
垢版 |
2018/07/05(木) 07:22:05.89ID:ydS/c7Yy
>>463
何をしたいのか明確な目的が必要
楽したい!ってモチベーションがないと続かないよ
トライ&エラーを繰り返すこと
教本だけでは身に付かないから、実践は必ず必要
0467デフォルトの名無しさん
垢版 |
2018/07/05(木) 08:33:49.18ID:rMERr/jv
>>463
今からプログラミングを覚えるならVBAなんて化石言語はやめましょう
言語的に近いC#がいいと思いますよ
VBA程度の事は全て出来ますしもっと色々と出来るので推奨
0468デフォルトの名無しさん
垢版 |
2018/07/05(木) 08:39:30.09ID:9AXPA/lJ
体系的に勉強する価値なんてないよ
やらなきゃいけないことをググって試してみての繰り返し
プログラミングのスキルやセンスを磨きたいなら他の言語で学んだ方がいい
0470デフォルトの名無しさん
垢版 |
2018/07/05(木) 18:59:11.64ID:d3LrKkRn
>>463
VBAを覚えて何がしたいのか知らんが、仕事で活用するなら
まず、エクセル関数をもっと覚えて関数で何とかできるようになりましょう

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

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

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

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

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

>>482
同じことあった。ライブラリのバージョン違うと動かんのねあれ
客が使うオフィスのバージョン確認したわ
0507デフォルトの名無しさん
垢版 |
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、が処理されているように見えるんですが、これは何故起こってるんでしょうか?
0509デフォルトの名無しさん
垢版 |
2018/07/07(土) 04:25:45.76ID:nRfAjRal
>>507
SendKeysはWindowsさんに伝言をたのむ命令
その伝言が伝わる前に直接連絡した方が先に届いてもおかしくない
DoEventsいれてみ
0511デフォルトの名無しさん
垢版 |
2018/07/07(土) 11:39:14.52ID:ZbC6MOHz
>>510
こいつも雰囲気悪くしてるからw
0512デフォルトの名無しさん
垢版 |
2018/07/07(土) 12:19:02.02ID:W328YIg6
>>511
おまえが一番雰囲気悪い
0514デフォルトの名無しさん
垢版 |
2018/07/07(土) 13:34:48.20ID:E0dVopgV
5chに来て何言ってんだ
建前抜きにした罵詈雑言の罵り合いも殺伐とした空気も煽りも自演も5chの醍醐味だろう
綺麗なインターネットを求めてるなら実名でブログでもツイッターでもやりゃいい
0518デフォルトの名無しさん
垢版 |
2018/07/07(土) 15:03:05.21ID:T1XdHa2q
リアルではみんな良い人なんだろうな
そうだろ?
クソ野郎ども
0522デフォルトの名無しさん
垢版 |
2018/07/07(土) 16:25:39.38ID:kAZOuKsA
Sendkeysは基本避けるべき。
お手軽だからその時だけ動けば良い場合なんかに使うこともあるけど、制御できるようにWin32や別のAPI使うべきだよ。
0523デフォルトの名無しさん
垢版 |
2018/07/07(土) 16:28:50.65ID:kAZOuKsA
ああ、でもイミディエイトは簡単にはいかないんだった。
Win32でどうにかしようとして一発でExcel落ちること多数。

俺もSendkeys以外で操作出来ないや。
0524デフォルトの名無しさん
垢版 |
2018/07/07(土) 18:36:53.15ID:T1XdHa2q
>>515
これホント?
決定したの?
0525デフォルトの名無しさん
垢版 |
2018/07/07(土) 19:36:53.17ID:lX+hrShl
Pythonが使えるようになったとして、Rangeの扱いはどうなるんだろ?
xlRangeとか名前変えて凌ぐのかな。
xlPyter NoteBookとかもうワケがわからなくなりそうな気がする
0527デフォルトの名無しさん
垢版 |
2018/07/07(土) 20:14:51.88ID:E0dVopgV
アマチュアの皆さんはプロの話についてこれないでしょう
あるのかしらないけど事務員板などに行って、そっちで同レベル帯の人達だけでディスカッションすれば捗るのでは?
0530デフォルトの名無しさん
垢版 |
2018/07/07(土) 21:06:39.47ID:3p7nZui6
最近質問ないし
■ このスレッドは過去ログ倉庫に格納されています

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