Excel VBA 質問スレ Part54
■ このスレッドは過去ログ倉庫に格納されています
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
最近プロによる書き込みが多々見うけられますが
彼らに絡むと話がこじれるので質問したい方は適当にスルーしてください
※前スレ
Excel VBA 質問スレ Part53
http://mevius.5ch.net/test/read.cgi/tech/1524823358/ >>430
worksheetfunction.roundupで良いんじゃないの? >>431
すいません、切り上げです。
>>432
マクロの結果が123.1だったら124にしたいってことです
>>433
切り上げたいセル=そのコードでいけますか? worksheetfunction以外ないでしょ。
わざわざvba使う意味がよく分からないけど。 切り上げ程度の簡単な処理でも、VBAだけで全部作るよりWorksheetFunctionの方が速い? 知らん実際に作ってみろよそして共有してくれ
家じゃexcel無いしめんどい めんどいのに意味のないレスはしたくなる馬鹿のジレンマ ジャップ企業「わざわざ車輪の再発明をするこたぁねー」
アップル「iPodでウォークマンを再発明しました!」
アップル「iPhoneで携帯電話を再発明しました!」
アップル「iPadでタブレットを再発明しました!」 iPodがウォークマンの再発明としか思えないから
日本からああいう製品は出なかったんだろうな アップルの成功はAppStoreをオープンにしてアプリを爆発的に増やしたこと
日本企業はオープンにせず独自企画が好きだもんな
iPodの頃なんて大して注目されてなかったし どこがじゃ。
全然オープンじゃねえだろ。
iPodのインパクトだろ。
こういうものはガジェオタが飛びついて一般に浸透してくから、最初は一般に注目される必要は無い。
デザインの力は大きかった。 条件付き書式って名前とかタグみたいな個を識別できるようなプロパティないの?
条件にごちゃごちゃ付け加えると重くなるからvba側で操作したいんだけど
特定できそうなところでなんちゃって判定するしかないのこれ ない上に知らん間に増殖する
全消しして追加がいいよ >>446
> ない上に知らん間に増殖する
そうなんだよね
条件付き書式の整理とか統合とかのコマンドがほしいわ >>447
確かに欲しい。でも作ろうと思えば作れる事に気がついた。
追加されるとは考えられないしやるか・・ 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の順となりなかなかうまくいきません。
どなたか解決策を教えていただけないでしょうか? >>451
https://msdn.microsoft.com/ja-jp/library/cc408450.aspx
>コピーは Recordset オブジェクトの現在の行を開始点として行われます。
らしいから、現在行を3行目にしとけばいいんじゃない >>451
https://msdn.microsoft.com/ja-jp/library/cc408450.aspx
>コピーは Recordset オブジェクトの現在の行を開始点として行われます。
らしいから、現在行を3行目にしとけばいいんじゃない >>452-454
早速にありがとうございます。
確かに転記後にソートでどうにでもなりそうですね。
できれば転記時にできればとおもっておりました。
カーソル位置を3行目にする事で解決はおっしゃるとおりですね。
ただ私の最初の前提が不十分な解説のため申し訳ありません。データが増えていった場合でも下から3つを取り出したい場合はどうすればよいか苦慮しています。
ExcelVBAのように、Offsetが使えたらデータが増えていっても下から3つだけを取り出すという風にできていいなと思うのですが。 >>455
topを使って馬鹿はいい加減に引っ込め >>455
現在行をn-3行目にしとけば良いんじゃない
>>456
単純にtop取るんじゃなくて、descでorder byしてtop取ったやつをもう1回order byする必要があるんだが
そんなSQLがすらすら書けるようなレベルのやつはこんな質問しないし もう一回order byは必要無いだろ。
Excel側で対処すれば良い。 >>457
こいつみたいに、後から出てきて回答してることをグタグタ書く馬鹿も来なくていいよ >>458
それが自分でできてりゃ
>SQLのORDER BYを使うと5、4、3の順となりなかなかうまくいきません。
てな事にはなってないだろう マクロ・VBAの勉強がしたいです
どのような方法で勉強を進めるのが理想でしょうか
エクセルのレベルはVLOOKUPなどのメジャーな関数を使える程度のレベルです
ちなみに会社員です >>463
何をしたいのか明確な目的が必要
楽したい!ってモチベーションがないと続かないよ
トライ&エラーを繰り返すこと
教本だけでは身に付かないから、実践は必ず必要 vloookupをdisる様になったらエクセル使いとして一人前 >>463
今からプログラミングを覚えるならVBAなんて化石言語はやめましょう
言語的に近いC#がいいと思いますよ
VBA程度の事は全て出来ますしもっと色々と出来るので推奨 体系的に勉強する価値なんてないよ
やらなきゃいけないことをググって試してみての繰り返し
プログラミングのスキルやセンスを磨きたいなら他の言語で学んだ方がいい >>463
こんなところで聞かなきゃいけない時点でもうダメだな >>463
VBAを覚えて何がしたいのか知らんが、仕事で活用するなら
まず、エクセル関数をもっと覚えて関数で何とかできるようになりましょう
事務処理ならエクセル関数だけで大概のことはできる
VBAが必要な場面はあまり無いと思う。せいぜいファイル操作くらいか すいません、processingについてのスレッドはありますでしょうか? 使いわけでしょ。
数千あるチェック項目の内、1日100個ぐらいずつをチェックしていき、その集計結果で1日の結果を関数で出し、更に1ヶ月のト―タルなんかを関数でやってたら重くてどうにもならなくなったりするし。
銀行でDBから取ってきたデ―タが辻褄があってるかを調べるなんて仕事をしたことが有るんだが、その為にシステム組んでる側の(と言ってもそいつが組んでる訳じゃない)奴がチェック用に用意したsumproduct多用ブックは酷かった。
触る度に5分とか10分とか待たされた。
VBAで組んだら一瞬になったけどね。
自動再計算を切るのも諸刃の剣だし。 プログラマじゃない普通の会社員がExcelを使うのにVBA勉強すんのは普通だろ。
なんで不必要なC#とかやらにゃならんのだ。
プログラマってほんと頭でっかちやな VBAって二十年くらいなんの進歩もないよね
この言語を覚えて次に全く役に立たないじゃん
キャリアアップの為にも意味ないよね >>473
プログラマじゃないとしても今時エクセルだけじゃ話にならんでしょ
誰だって日常的にディレクトリ階層とエクセル以外のファイルを扱う
ツールの拡張がスクリプト言語になってることは良くある
自分のWindowsを管理するにはpowershellを使うね
得に最近需要が高まってるのはREST APIやスクレイピング技術だな
いずれもVBAでもできんことはないが果てしなく古臭い構文と開発環境、貧弱なライブラリのせいで死ぬほど生産効率悪いんだよね
マゾにはオススメかもしれんがノーマルな人にはオススメできんな >>474
VBAは進歩がないのがメリットとも言える。
pythonなんかは2と3で動作仕様が異なる上、モジュールのバージョンも気にする必要があって、別PCで同じ環境を構築しようとすると結構面倒。
その点、VBAはどんなPC、エクセルのバージョンであっても安定して動作するって意味では楽だな。
色々言語触ったけど、自分の結論としてはどの言語が良い悪いではなく、結局適材適所で使い分けが大事。 WindowsUpdateの影響で個々のPCで不具合でまくるが もっと短いのにならないかな。
Vlookupとか長いので、GonとかPnとかさ。
Sheet1も地味に長いよね。
Werでいいよね。 事務員はプログラマじゃないからVBで十分
他の言語を扱うなら担当の部署に回すか外注する
部署で自分しか扱えない言語を触りだしたら間違いなくそいつは地雷 iPad上でもWinで書いたVBAファイルは動きますか?
ファイルをやり取り出来る? 「エクセルで十分」ってよく聞くフレーズだけど
「料理するには石器で十分」のような強烈な違和感を感じる VBAって結構リストビューになかされない?最近win10になったけどバグる。
そもそもリストビュー使わない? >>480
Office365じゃないとVBAは動かなかったはず。ファイルはやり取り可能だが >>476
> その点、VBAはどんなPC、エクセルのバージョンであっても安定して動作するって意味では楽だな。
VBAはいいとしてもその上のExcelの動作がバージョンによって変わる
特にグラフ周りはグダグダ 普通の事務職がVBAを勉強したいっていう何の変哲もない書き込みにおまえら首の皮を取ったようにレスしててワロタ
おまえらみたいなのが少数派だってことを認識した方がいいぞ もう俺はおまえらに何も言えない
首の皮を取って出直してくる 本気でプログラミングするわけでもない事務員なら、より簡単に色々出来ることが多い言語を選ぶのが正解だろ?
マゾはVBAから始めてもいいけど完全に選択肢間違えてっぞ ExcelVBAを学びたい人の目的はExcel上での自動化なので、他の言語提案する馬鹿は、要求仕様もRFPも設計も出来ない馬鹿だと思う 真に事務屋に必要なのはAutoHotkeyとかUWSCみたいな即物的なマクロツール つーかいい加減VBAなんてゴミ捨てろよ
手抜き目的でプログラムなんて興味なしが大半なんだからそのへん雑なjsが最適だろ
型だのSetだのCallだのいらねーんだよハゲ エクセルと心中する気持ちがある
目指せエクセルマスター
それぐらい本気で取り組む気持ちがあるならVBA
そこまでの覚悟がないなら他の簡単で使い道が多い言語にしたほうがいいね >>496
カスタム関数がjsで書けるようになる。
現在ベータテスト中のはず。
またpython対応も進められてるはず。 ここぞとばかりに湧いてきよった教えたがりのプロさん達w >>484
エクセルのグラフや統計ツールは場当たり的な作業で使うもので、自動化には向かない。
そういうのはpythonとかの方がいいよ。 >>500
エクセル並のグラフ作れるライブラリ教えてくれたら考える ExcelのjavaScript対応なんて、Googleスプレッドシートの後追いじゃないの?
サーバーサイドじゃなくクライアントで動くなら助かるけど、
でたぶん、APIがあるだけで関数書式はVBAと同じ手続き踏まされると予感 excelは圧倒的な普及率が強み
多少使い勝手が悪くても使う理由 >>502
もちろんクライアントサイド。google spreadシートのはサーバーサイドでちょっと複雑な処理書くと制限に引っ掛かったりで非常に遅く、jsの仕様もes5相当の古い書き方しかできず辛い。
その点excelはedgeのjsエンジンであるchakraコアがそのまま動き最新の機能が使える。
まさかのasync/awaitまで使えて夢が広がる dim rng as range
for each rng in selection.rows
以下略
こんな感じで複数行選択して各列に対して操作を行いたいんですよ
でその操作の中で行をコピー・挿入だったり削除だったりするんですけど、それがselection内だったりするとselectionそのものが変わっちゃったりするんです
複製された行に対しても操作しようとしたり、削除されて上に1行繰り上がって本来操作されるべき列が飛ばされたり
なんかいいアイディアないですかねぇ
>>482
同じことあった。ライブラリのバージョン違うと動かんのねあれ
客が使うオフィスのバージョン確認したわ どなたか教えて頂けませんか。
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、が処理されているように見えるんですが、これは何故起こってるんでしょうか? >>507
SendKeysはWindowsさんに伝言をたのむ命令
その伝言が伝わる前に直接連絡した方が先に届いてもおかしくない
DoEventsいれてみ ここはほんとうに素晴らしいスレッドですね。
>>456とか>>459とか>>466とか雰囲気悪くするだけだからもうこなくていいよw 5chに来て何言ってんだ
建前抜きにした罵詈雑言の罵り合いも殺伐とした空気も煽りも自演も5chの醍醐味だろう
綺麗なインターネットを求めてるなら実名でブログでもツイッターでもやりゃいい pythonは次期Excelに搭載されないことが決定しただろ馬鹿 マジかーvbaとpythonとjsの悪魔合体楽しみにしてたのに ゆとり世代の知恵遅れの人達はいちいち誉めてあげないとダメだよ リアルではみんな良い人なんだろうな
そうだろ?
クソ野郎ども Sendkeysは基本避けるべき。
お手軽だからその時だけ動けば良い場合なんかに使うこともあるけど、制御できるようにWin32や別のAPI使うべきだよ。 ああ、でもイミディエイトは簡単にはいかないんだった。
Win32でどうにかしようとして一発でExcel落ちること多数。
俺もSendkeys以外で操作出来ないや。 Pythonが使えるようになったとして、Rangeの扱いはどうなるんだろ?
xlRangeとか名前変えて凌ぐのかな。
xlPyter NoteBookとかもうワケがわからなくなりそうな気がする アマチュアの皆さんはプロの話についてこれないでしょう
あるのかしらないけど事務員板などに行って、そっちで同レベル帯の人達だけでディスカッションすれば捗るのでは? ■ このスレッドは過去ログ倉庫に格納されています