Excel VBA 質問スレ Part59
■ このスレッドは過去ログ倉庫に格納されています
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part58
https://mevius.5ch.net/test/read.cgi/tech/1542577644/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured >>330
自分でも調べてたけど、「最後の要素しか増やせない」って同じこと書いてありました。これは
例えば、行数読んだ結果がLcnt=10だとして
まず
ReDim(Lcnt,0)で作り
配列(0 to 10,0)ができ
Redim Preserve(Lcnt,Ubound(Split(1行目))
区切った値が5なら
配列(0 to 10,0to5)が出来てしまい、いっぺんに右の要素数が変更されるってことで合ってます?
と言うことは、1行目が5列で次に読んだ2行目が3列なら右の要素数は3に減るって事ですかね?
ifか何かで要素数は増える時だけRedim Preserveのが良いですかね? >>337
VBは上にまとめ
C#は使う時
他の言語はしらん。あくまでイメージ。
スコープは短くが理想だから長くなって下部に変数が初登場ならFunctionとかCallで余分そうなものは排除。
だからそのループも逃がす >>339
あなたの用途に合ってるのは2次元配列じゃなくて配列の配列。
ReDim arr(0 To n)
arr(i) = 別の配列 ` i : 0〜n
みたいなことができる
「別の配列」のところに、csvの一行分を処理して配列を返す関数を当てはめればいい。
もちろんクラス化してもいいけどさ >>329-334
Ruby では普通に、2次元配列に入る
require "csv"
p CSV.read( "test.csv" )
結果
[["id", "first name", "last name", "age"],
["1", "taro", "tanaka", "20"],
["2", "yumi", "adachi", "21"]] クラスって要素名を予め宣言しないといけないからcsvの要素が変わると対応できない?
教えてエロい人 要素名で名前解決する処理がないなら、レコード値を配列プロパティで受け渡すだけで良いと思う
名前解決が必要なら要素宣言しないといけないね 教えてください。
エクセルのマクロです
PDFファイル(100ページくらいある)を、エクセルに、全ページをたて一列に貼り付けたいのですが、
どう書けばいいでしょうか RPAを買ってコピペを自動化するのが手っ取り早いよ なぜPDFを貼り付けるのか
そのまま印刷すればええやん
そのPDFは1つのファイルの中に100ページあるの?
1ページだけのPDFファイルが100個あるの?
バラバラのPDFファイルを1つに結合したいだけならフリーウェアでできるよ >>347
印刷のためじゃなく、PDFをシートにはり、横にエクセルでコメント入れたい。 >>345
PDFを画像に分割→エクセルに貼り付け
って流れになる
PDFから直接どうこうは止めたほうが良い、PDFを触るのはかなりめんどくさい
PDFを画像に分割するソフトがあると思うから、まずはそれを探して試してみて
どういう形式で画像が出て来るかが分かれば、後はvba簡単に書けると思う
>>349
そういやそっちの方が早いね >>345
「教えてください」で始まる質問をするのは馬鹿しかいない法則 分割するとは?
100ページのドキュメントだから100個のファイルを作成するということでしょうか。 分割しないで、ページを読み込み、貼り付けはできないのでしょうか? PDFを画像にするっていうのはプリンタで印刷するのと同じイメージだから基本1ページ1ファイルね >>356
できるけどめんどくさいんだって。
自分用ですら>>350の手順踏む
この件は誰もやらんって断定するから諦めたほうが良い どうしてもVBAとExcel上でやりたかったら
100ページのPDFを100枚の画像に変換するのはフリーウェアで一発でできる
画像をワークシートに並べるだけならVBAで簡単に書ける
上司の命令とかで他の選択肢がないなら、俺ならこうする >>345
>エクセルのマクロです
なにがどうエクセルのマクロなのか全くわからなくて面白かった >>362>>364
エクセルのマクロだけでいけるとおもったんやろ
実際出来なくはないと思うけどすげーしんどいって事にまで気が回らなかったことは仕方ない 「○○したいんですけど教えて下さい」
「なんでそんなことしたいの?バカなの?」
何でこんな回答いちいちすんだろ
答えてくてウズウズしてる自称プロが自分のわからない質問来てカリカリしちゃってるのか? なんでそんなめんどくさいことするの?
〇〇でよくね?
とかよく見るけど、質問者が聞いてる事だけ教えればいいのにと思う。 >>366
大正解
vbaと実務の範囲を分かってない未熟者
>367
それを言うと
「〇〇はやりたくないんですw」
という回答が帰ってくるのがもう過去何度も QAに集中したいならteratailかstackoverflow.jpがオススメですよ 1ページ目が貼り付けられるけど、ページを指定できないのかな >>311
htmlに書かれているJavaScriptを実行したい時とか。 めんどくさいっていうか、AcrobatOLE使えないと無理じゃない?
Excelだけで完結できる手法あるの? >>367
質問者が気付いてない、知らないだけの場合もあるから 上司から言われてるだけというケースもあるだろうな。 手順固定で指示する糞上司っているよね
その手順がボトルネックになって糞の塊のようなツールが出来上がったりする >>373
ハンドアセンブルを覚える。
バイナリで書き出す。 >>376
組織はそれが普通。趣味で仕事やりますというわけには行かない 趣味で作り上げたとしても説明してレビュー受けないといけない。その労力って結構きついしいっそ言われたまま作り上げた方が精神的にラクね >>376
固定するのは百歩譲って良いんだけど説明も了解もなく決める人には困るね
より良い方法を提案する機会がないままルールとして決まってしまう マニュアル化できるレベルの仕事しかできないって自虐だろ 1.質問に回答する。
2.質問者から、「その場合だと〜が上手くいきません。」と返事。
3.その場合は〜すれば良いと回答する。
4.質問者から「それだと〜」...
5.2-4を何度か繰り返す。
6.質問者に「そもそも君はその処理で何をやりたいんだ?」と聞く。
7.質問者の返事を聞いて、結局質問者の設計が糞だったと知る。
8.1-7をを何度となく経験してると、質問を見た時に設計の糞さ加減がかなりの確度で予想できるようになる。
9.質問者の聞いてることだけ回答すると糞設計のせいでドツボに嵌まるので聞いてることだけ回答するのは辞めようという結論になる。
10.質問者は自分の糞設計に気付かないので、質問にだけ回答すれば良いのにと思う。 こうやって質問者をひとくくりで決めつけちゃうような視野が狭い人が一番の癌なんだよな
バカほどなんでも決めつけて単純化させようとする
勝手に単純化させた結論を赤の他人にいきなり押しつけるから当然理解されない
理解されないことを相手がバカだからと決めつけていきなり罵り出す
頭がおかしい人なのかな?と放置されると論破して黙らせたと思い込んで悦に浸り出す
そしてプロ回答者としての自信を増して増長して居座る 大抵の事務仕事は本来単純なことをわざわざ難しくして仕事を作っているだけなのは事実だね
VBAや最近だとRPAのような小手先の自動化ツールのは、本質的なプロセスの見直しに対するモチベーションを削いでいる面もある 営業はそれが売上に繋がってると信じてやまないので、
どうにもなんないのよ〜 >>384
お前が碌に回答したことが無い初心者なだけだろ。
いろんな所で回答してる奴らは皆同意する。 >>387
同意するわ
明らかに知識の乏しい初心者が妙に具体的に手段を特定して助けを求めてきた場合、
「そんなことはどうでもいいから目的を教えろ」と対応するのが最も確実で効果的で手っ取り早い >>383
>8.1-7をを何度となく経験してると、質問を見た時に設計の糞さ加減がかなりの確度で予想できるようになる。
この辺りになると回答でイライラする事が無くなるゾ プログラムって書き方って人それぞれ違うと思うけどみんな書き方どんな?
EXCELのセルデータをComboBoxに格納
メイン文
caii addcbo(FilePath,1,Me.cbo1)
caii addcbo(FilePath,5,Me.cbo2)
caii addcbo(FilePath,8,Me.cbo3)
Function addcbo(....)
※DAOでEXCEL開く
第2引数の列を下にループ
第3引数に空になるまで格納
End Function
てな感じのコードってどうなの?
俺は先に2次元配列でシート丸ごと持ってきてから入れてく感じにしたんだけど、ここにいる人達はどう書く? caiiってcallの事か
>>392が綺麗と思うけど、大抵>>391ぐらいで終わる >>391
おまえプロさんか?
まだプロさん予備軍やったら気いつけや
そこからプロさんに堕ちるんはあっちゅう間やで >>387
さすがプロ回答者の鏡
嫌なら別に回答者なんてやらなくてもいいんだよ?
質問者をひとくくりに見下すようなひねくれ者になってまでプロ回答者をやり続けてる目的ってなに?
こんなとこで他人を見下してなきゃ自尊心保てないとかそんな感じ? >>384
こうやって回答者をひとくくりで決めつけちゃうような視野が狭い人が一番の癌なんだよな
バカほどなんでも決めつけて単純化させようとする
勝手に単純化させた結論を赤の他人にいきなり押しつけるから当然理解されない
理解されないことを相手がバカだからと決めつけていきなり罵り出す
頭がおかしい人なのかな?と放置されると論破して黙らせたと思い込んで悦に浸り出す 質問に対する回答よりも糞みたいな煽り合いに熱中する奴ってなんなの 質問者は基本的に馬鹿
「インターネットは開くんですけどxxシステムが開きません」と言われてTraceやらブラウザ設定やらやった挙句、LANケーブルが挿さってないだけでインターネットはキャッシュでした、っていうようなオチが山ほどある
奴らの言葉を鵜呑みにしてはいけない ループから抜けるときにブレイクとかコンティニューないのこれ? >>400
exitがある
Sub foo()
For i = 1 To 1000
Debug.Print i
If i > 100 Then
Exit For
End If
Next
End Sub >>399←こいつホンマもんのプロさんやんwww
Traceてwwwwwwww 混沌とした質問ではなくてある程度整形された質問ならお互いに健全かもしれないね。
「例えば質問のためのテンプレ埋めてもらう」とかだけでもやり取りの回数減るんじゃないかな。
テンプレの内容はよくわからないけど、例えば「配列が解るか、オブジェクトが解るか、APIが解るか」とか書いてもらえれば質問者のレベルか解りやすいから罵ることもないだろうし
全体の流れの一部として困ってるのか、単純に言語仕様で困ってるのかだけでも質問者に必要なのがコンサルなのか解答なのか切り分けしやすいと思う。 【目的】
【何がわからないのか】
【どうなることを期待しているのか】
【何故それが必要だと考えたのか】
でいいよ
質問者のレベルなんてレスの内容見りゃわかるだろ >>405
>【目的】
>【何故それが必要だと考えたのか】
これは無くてもいいかも
多分あんまり良い情報は返ってこない気がする
>【何がわからないのか】
これも無くて良いかもしれないけど、
まぁ一応質問スレなので
後は最初の状態が欲しい
初めと終わりがあれば何とでもなる
それと反復頻度。一回だけなら一回だけ用の雑コードで済ますし、毎日ならもうちょい丁寧に書く
ってわけで以下になっていると楽
【作業前の状態】
【終了時の状態】
【何がわからないのか】
【作業の頻度(一回だけ or 何度も)】 データ量も欲しいなあ
1万件なら雑コード、100万件なら処理速度も意識してコード書く 質問者が減れば珍回答で恥をかくリスクも減って回答者のプライドが保たれるので問題ない まぁプロ回答者どもが罵り合いやってますが、質問者の方はそんなの気にせず
どんどん質問してくださいな w このスレの本質はプロ回答者選手権だからな
プロ回答者の敵はプロ回答者
質問者など餌に過ぎない
その餌を誰が一番上から踏み潰すかを競い合う
ちなみにプロ回答者にもなると質問に答えたりしない >>413
なるほど!
まさに>>413さんのような方ですね なるほど
プロ回答者ってのは「質問スレにおける回答活動」のプロって意味か まぁ別に目的の記述は無くてもいいけど
何を目的にしているかの記述があれば
代替案考えてくれる人もいるだろうし
欲しい解答が得られやすい場合もあるわな
逆に余計なこと言って欲しくないのなら
書かないのも有りだと思うけど
解答者がゲスパーして答えるのも
また有りだと思うし >>400
ループから抜けるのは>>401の人が言う通り
Exitを使えばいいけど、次のループに行くような
.Netで言うContinueはないので
分岐でループしているロジックの最後に持って行くしかないんじゃないかな? ここの質問を見ると、よほど変なもん作らされてるんだろうなって思う。
何に使うのかわからないようなのが多くて、
実務で使いそうなのがあまり出てこない。 実務では文字列解析とデータベースからの検索程度で難しくは無いんだけど
適当に組んだせいか妙に遅いのが悩み
高速化するテクニックとかないかな 二重Forループ
↓
VLOOKUP
↓
高速VLOOKUP
↓
SQL
これより速いのって、やっぱアセンブラ? >>422
インデックスを張ってSQLでJOIN
オンデマンドなトランザクションじゃなくて単発の巨大なバッチならHiveとか使うのもいい エラーがわかりにくいのがいちばんのストレス
そのほかにも可変長引数とかジェネリクスとかwithの糞文法とか短絡評価未搭載とかインターフェイスが歪んだ設計になるとか色々遅れすぎ
所詮底辺が一発ツールで使う言語 短絡評価がないせいでネストを深くせざるをえないときがあるんだよね >>425
その辺は仕方ない
C#やRubyやってる人がJavaは糞だって言ってるのと大差ない >>425
エラーチェックは本当にな
これでforが無いって言われる。本当にないのはもちろnendif
さすがにもう迷う事は無いけど、
初心者の頃は散々苦しめられた
Sub foo()
For i = 1 To 10
If True Then
Next
End Sub エラーってコードのエラーのことか
実行時のことかと思った あぁ、実行時エラーの可能性もあるか
あれはactiveにしてないsheetのcellをselectした時はハマったけどそれ以外は特に・・・ 唯一(?)の短絡評価である Select Case のリストはクソだと思いながらたまに使う >>433
お前がGoogleの採用選考を受けても学歴で足切りされて職務経歴の中身すら見てもらえないだろ?
結果が決まってるのに余計な評価をするのはリソースの無駄だからだ
そのように、評価が確定した時点で残りの評価を省いて結果を出す戦略を短絡評価という >>434
お前バカだな
Googleは学歴より経歴重視だよ >>436
低学歴にも凄い経歴の奴はいるが、高学歴の中にはもっと沢山いるんやで
採用のための人的リソース最適化問題に対する戦略として、学歴フィルタが有効であることは十分に証明されている >>437
履歴書と職務経歴書って同封して送られてくるんだから同時に見ればいいじゃん
それとも30秒くらいの時間を惜しんで職務経歴書読まずにお祈りするの?
大した戦略だねw ■ このスレッドは過去ログ倉庫に格納されています