[過去ログ] Excel VBA 質問スレ Part68 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
596
(2): (スプッッ Sd02-4ynI) 2020/10/22(木)08:49 ID:8kbg1eIjd(1) AAS
まだVBAなんて使ってる人がいてビックリ
懐かしい言語だよね
597: (テテンテンテン MMe6-B6QP) 2020/10/22(木)09:02 ID:OZW0tgCBM(1) AAS
Excel2000から20年なんて家電製品なら普通ですよ
598: (ラクッペペ MMe6-E8a6) 2020/10/22(木)12:37 ID:QXcT5+jPM(1) AAS
Excel5.0からだよ
16ビットだよ
599
(1): (ドコグロ MM15-o6QC) 2020/10/22(木)12:37 ID:N0tQIHiYM(1) AAS
>>596
今現在Excel入ってりゃ必ず使えるのはVBAだけだから
まあ最近の言語に比べりゃ色々面倒な部分はあるけどちょっとしたツール程度ならなんとかなるぐらいの機能はあるし
600
(1): (ワッチョイ 05cc-LA9s) 2020/10/22(木)17:17 ID:8WoYrv7v0(1) AAS
A1に"2020/10/22"のように日付が入っています。
その日付が土曜日の場合、その月の何回目の土曜日かを調べるコードを教えてください。
601: (テテンテンテン MMe6-FUnU) 2020/10/22(木)17:41 ID:V9nm7cr3M(1) AAS
嫌です
602: (ラクッペペ MMe6-E8a6) 2020/10/22(木)18:23 ID:jxPHtPQlM(1) AAS
22÷7
603: (ワッチョイ 86c3-m/xB) 2020/10/22(木)18:50 ID:lPQIKdWd0(1) AAS
>>600
その日付は木曜日です
604: (ワッチョイ e1d2-o8Qw) 2020/10/22(木)18:56 ID:CJ3HroyY0(1) AAS
int((日-1)/7+1)
605: (アウアウウー Sa45-S+8T) 2020/10/22(木)19:08 ID:XgRR6MjRa(1) AAS
days
606: (ワッチョイ 21da-tMQb) 2020/10/22(木)20:00 ID:Nlv/Qw7G0(1) AAS
>>596
ここでRuby教を広めようとしても無駄ですよ
607: ◆QZaw55cn4c (JP 0H52-MyFb) 2020/10/22(木)20:38 ID:RiQFyYLuH(1) AAS
>>599
そうそう、それに win32api のほとんどを呼び出すことができるんですよね
608: 600 (オイコラミネオ MM69-joA3) 2020/10/22(木)20:54 ID:EVMbdUMSM(1) AAS
〉〉604
ありがとうございます
609: (ワッチョイ ee8e-rRPK) 2020/10/22(木)21:21 ID:hm8FUbN60(1) AAS
いつものあいつか
610
(4): (ワッチョイ d163-MACq) 2020/10/22(木)22:49 ID:kity+iCG0(1) AAS
FileSystemObjectの参照設定

VBAの中でできないのかな?
611: (ワッチョイ c2e6-dcnK) 2020/10/23(金)00:04 ID:1WodYwaj0(1) AAS
エディタの支援が不要ならCreateObjectでええやん
612: (スプッッ Sd02-oXyV) 2020/10/23(金)00:50 ID:g9AT+l9rd(1) AAS
>>610
出来る。
613: (テテンテンテン MMe6-B6QP) 2020/10/23(金)01:26 ID:ykqFrr6rM(1) AAS
>>610
出来ない
614: (アウアウウー Sa45-TzND) 2020/10/23(金)02:25 ID:YKSIT3mga(1) AAS
>>610
出来まい
615: (スッップ Sda2-AC5c) 2020/10/23(金)02:48 ID:bmMgVHIId(1) AAS
競馬のオッズの取り込み教えて欲しい。
616
(2): (ワッチョイ 02ad-dZ3m) 2020/10/23(金)08:33 ID:TKI7l+v40(1/4) AAS
複数のセルに纏めて背景色を付けたい場合についてです
指定のセルは離れているためRangeで範囲選択では済ませられないです
Unionを使用するのも手ではありますが動作速度に影響を及ぼすので最終手段としたいです

そこで背景色をつけるセルのAddressを取得して一次元配列に格納し
.Range(Join(Array, ",")).Interior.CoIor = CLng("&H00FAFAFA″)
で着色しようとしたのですが、どうもこの連結方法の場合、連結数が一定数を超えるとエラー停止してしまう様です

なので何か別のアプローチはないものかと模索している最中なのですがもしよろしければお知恵をお借りしたいです
617: (アウアウカー Sa89-VmZc) 2020/10/23(金)08:37 ID:WT7JJPgTa(1) AAS
自分で思いつかないようなテクニカルなやり方してもあとで読む人が大変だし普通に配列ループでいいじゃん
618: (ブーイモ MM76-H07y) 2020/10/23(金)09:16 ID:0vnMylCPM(1) AAS
VBAで済む事をわざわざ他言語でやる池沼よりマシ
619
(1): (ワッチョイ 05da-tMQb) 2020/10/23(金)10:42 ID:9+IFx01J0(1/3) AAS
>>616
一定数を超えるとエラーになるってわかっているんだから一定数を超えないようにすればいいんじゃね
620: (ワッチョイ 02ad-dZ3m) 2020/10/23(金)11:02 ID:TKI7l+v40(2/4) AAS
>>619
不特定多数が使用する業務のスケジュール管理をするツールで、描写したスケジュール表を平日、土曜日、日曜祝日の3パターンで着色する必要があるんですけど、業務期間が長いとどうしても超えてしまう場合が発生するんですよね
業務期間に制限を設けるわけにもいかないですし
配列に格納してんだからループで一定数おきに着色ってのも考えたんですけどUnionより遅くなるっぽいんで最適化を諦めてUnionで繋げちゃうかーって思ってはいるんですが、その前にここで聞いてみて何かヒント貰えたらなーと
621: (ワッチョイ 8249-5+f8) 2020/10/23(金)12:29 ID:u/a/wHRt0(1) AAS
あまり編集をしないのであれば、条件付き書式で勝手に色がつくようにするとか
622
(1): (ワッチョイ 3901-3XbD) 2020/10/23(金)13:40 ID:DQVFwAwV0(1/3) AAS
>>616
Join(Array, ",") ← こいつがエラー起こすって感じなの?
String 型は最大20億文字数らしいね
あるいは.Rangeが受け付けないのか

一応ググってみるとRangeの引数は255文字までというのが出て来る
これに引っかかってるんじゃねえの
623: (ワッチョイ 3901-3XbD) 2020/10/23(金)13:51 ID:DQVFwAwV0(2/3) AAS
>一次元配列に格納し

これでループ回したところで体感できるような速度差は出ないと思うがな
むしろRange内の文字列引数処理のほうが時間食われるんじゃないかと
Union・・・どんなもんだろねぇ
624: (ワッチョイ 02ad-dZ3m) 2020/10/23(金)13:51 ID:TKI7l+v40(3/4) AAS
>>622
なるほど
引数上限の255文字が原因っぽいですね
んー……そうするとやっぱり複数範囲をカンマ区切りでーは上限が発生しちゃいますよねぇ
625: (テテンテンテン MMe6-FUnU) 2020/10/23(金)14:36 ID:ITa0Mrx5M(1) AAS
255件程度ならどんな方法でもさして時間変わらないのでは
screenupdating切れば一瞬で終わりそう
626: (ラクッペペ MMe6-E8a6) 2020/10/23(金)15:36 ID:wfU4S4ZzM(1) AAS
数秒が待てないというのはイベント駆動でもさせる気なの?
627: (ワッチョイ 8201-ZFHv) 2020/10/23(金)15:48 ID:BdUYZCjc0(1) AAS
エクセルでマリオカートを作ります
628: (ワッチョイ 21da-tMQb) 2020/10/23(金)18:52 ID:uwgUvjOA0(1) AAS
エクセルでねぇ・・。
実質DirectX頼りだろう。
セル書き換えじゃ60fps出ないし。
629: (ワッチョイ cd7c-z4aL) 2020/10/23(金)19:17 ID:knErP7D20(1) AAS
255個ぐらいで数秒もかかるのはおかしい
630: (ワッチョイ 05da-tMQb) 2020/10/23(金)19:24 ID:9+IFx01J0(2/3) AAS
ヒントならもらったろうに、あとはどう実装するかは自力で試行錯誤やればいいんじゃね
631
(1): (ワッチョイ 02ad-dZ3m) 2020/10/23(金)19:38 ID:TKI7l+v40(4/4) AAS
処理範囲的には
.Range(”M11:Q1011,T11:X1011,【中略】,CF11:CJ1011“).Interior.CoIor
ぐらいです

全体で1万弱程のステップがあって他ファイルの読込やグラフの生成、データファイルの出力等があり、全体の処理時間が10秒前後なので
この処理を軽くした所で焼け石に水なのは分かってはいるんですが、
オブジェクトの操作を極力減らして動作時間を軽減したいなぁと思っています

次の操作箇所を強調する為にRange(″M20,M20″).Selectみたいな操作を使ったので、これの応用で広域処理も行けるかなぁと思ったんですがダメみたいですね
お騒がせ致しました
お忙しい中ご意見等頂きありがとうございました
632: (ワッチョイ 05da-tMQb) 2020/10/23(金)21:25 ID:9+IFx01J0(3/3) AAS
問題に取り組む姿勢がおかしい
633: (ワッチョイ 3901-3XbD) 2020/10/23(金)21:51 ID:DQVFwAwV0(3/3) AAS
>>631
>他ファイルの読込

俺はこいつが異様に遅くて困ってる
100万個ほどのデータをCSVから読ませてるんだけど6世代i5で3分、セレロンだと10分とかかかる
Lineで1行ずつ読んでるせいなんだろうけどQueryだと早いんだろうなあと思いながら面倒で手を付けてなかった
これを機にやってみるかなぁ
実際相当早くなるもんかね?
634
(1): (ワッチョイ 0242-Kbrf) 2020/10/23(金)22:37 ID:jmwa0xlU0(1) AAS
何をやってるかにもよるがそもそも一度に全部読み込まなきゃいいんじゃね
635
(1): (ワッチョイ fd5f-zec2) 2020/10/23(金)23:22 ID:/Kxbsbpt0(1) AAS
曜日の色付けなんてWEEKDAY関数と条件付き書式で良くないか?
曜日ごとに文字列記入するところはマクロにしてるけど
636: (ワッチョイ 3901-3XbD) 2020/10/24(土)06:26 ID:Uy2SF5SV0(1) AAS
>>634
>一度に全部読み込まなきゃ

そうやねぇ・・・
週ごとにデータを集計してんだけどいまんところ一括で読み込ませてる
常時PC立ち上がってる環境だから逐次データ吸い上げていけば一番いいんだけどそうなると小手先の変更じゃなくて大枠に手を加えなきゃなんなくなるのが頭痛いところ
てかこんなのエクセルでやらせんなよって話でもあるんだけどそうはいかない
637: (ワッチョイ 02ad-dZ3m) 2020/10/24(土)08:29 ID:Q0nf4D4p0(1) AAS
>>635
それでも良いんですけど、行ごとに工程の開始日と終了日を設定して工程の期間のセルは計画達成率ごとに緑、黄、橙、赤って着色する必要があり、その着色は開始日が平日なら土日祝日は着色しない、開始日が土日祝日なら期間中全てのセルを着色
とかやるんで条件書式でやるのかなり面倒なんですよね
ユーザーには進捗率をスケジュール表に記入させるんですけど今日以降の進捗率は入力があっても認識から外さなければならないって仕様もあったりするんで
638: (ワッチョイ cd7c-z4aL) 2020/10/24(土)10:23 ID:EYzilKe/0(1/3) AAS
そのぐらいなら自分なら条件付き書式でやる
639: (アウアウウー Sa45-TzND) 2020/10/24(土)10:53 ID:Fj5xdFDia(1) AAS
毎回全部のデータつくりなおすのか
差分だけやるとか分割するとかしないのね
640
(4): (ラクッペペ MMe6-1Dkg) 2020/10/24(土)12:24 ID:9i+KquaLM(1/2) AAS
あるフォルダに複数のエクセルがあります。
シートは必ず一枚。
一番ファイル名が短いエクセルに
他のエクセルのシートをコピーしてまとめたい。
どう書けば楽ですか。
641
(1): (ササクッテロ Sp11-xxau) 2020/10/24(土)12:36 ID:Gp+9LQQ1p(1) AAS
>>640
一番短いファイル名で同じ長さのものが有った時点で破綻

次の方どうぞ〜
642: (ワッチョイ fd5f-orSx) 2020/10/24(土)12:41 ID:hS/lv/UK0(1/8) AAS
その問題を作った先生を問い詰めろ!
643: (ワッチョイ fd5f-orSx) 2020/10/24(土)12:43 ID:hS/lv/UK0(2/8) AAS
>>640
前提条件にリアリティがなさすぎるw
644: (ワッチョイ 05da-tMQb) 2020/10/24(土)13:11 ID:uN2dIIGs0(1) AAS
>>640
「わかりません」って書いとけばいいよ
645: (ワッチョイ 224b-FUnU) 2020/10/24(土)13:18 ID:Lxq4fMOo0(1) AAS
>>640
その通り書けば楽です
646: (ワッチョイ fd5f-orSx) 2020/10/24(土)13:35 ID:hS/lv/UK0(3/8) AAS
エクセルがあるとは何ですか?
647: (ワッチョイ fd5f-orSx) 2020/10/24(土)13:37 ID:hS/lv/UK0(4/8) AAS
Excelファイルのことを単にExcelと呼ぶのも違和感がある。
648: (ラクッペペ MMe6-1Dkg) 2020/10/24(土)13:45 ID:9i+KquaLM(2/2) AAS
>>641
同じ長さになることはありません
説明不足ですみません
649: (ワッチョイ cd7c-z4aL) 2020/10/24(土)13:46 ID:EYzilKe/0(2/3) AAS
何を条件にした楽なのか?
650: (ワッチョイ fd5f-orSx) 2020/10/24(土)15:19 ID:hS/lv/UK0(5/8) AAS
ファイル名のことなんてあとで考えればよい。

まず手順を考えてください。

ファイル名は重要ではありません。
651: (ワッチョイ ee8e-rRPK) 2020/10/24(土)15:29 ID:VJA5Q+pD0(1/2) AAS
いつものあいつっぽい
652
(5): (ワッチョイ 05cc-BPyH) 2020/10/24(土)15:59 ID:h35l0z5Z0(1/2) AAS
シート"土曜日の小計"のA2から、祝日と会社の休業日以外の土曜日を書いていくマクロを考えています。

(シートカレンダーのA列に日付、B列にA列の日付が祝日であれば"1"が入力してあり、C列に会社の休業日なら"1"が入力してあります)

このマクロだと、「424 オブジェクトが必要です」になります。どう書けば良いですか?

Dim a As Long,r As Long

a = 2
省8
653
(1): (ワッチョイ fd5f-orSx) 2020/10/24(土)17:14 ID:hS/lv/UK0(6/8) AAS
>>652
外部リンク[htm]:officetanaka.net
654: (ワッチョイ fd5f-orSx) 2020/10/24(土)17:16 ID:hS/lv/UK0(7/8) AAS
>>652
可読性の悪さw
655: (ワッチョイ ee8e-rRPK) 2020/10/24(土)17:22 ID:VJA5Q+pD0(2/2) AAS
土曜日のことを聞いていたのは例のあいつ
656: (ワッチョイ fd5f-orSx) 2020/10/24(土)17:24 ID:hS/lv/UK0(8/8) AAS
>>652
どのワークシートなのか指定がないけど?
657: (ワッチョイ 2e02-tMQb) 2020/10/24(土)19:06 ID:kz7Ernxq0(1) AAS
例のあいつが好きな人か
658: (ワッチョイ cd7c-z4aL) 2020/10/24(土)19:44 ID:EYzilKe/0(3/3) AAS
オブジェクトの指定も無いし存在しない命令も書いてあるし
659: (スプッッ Sd02-oXyV) 2020/10/24(土)19:53 ID:rvK7EvYrd(1) AAS
>>610
個別的になるが出来る。
Application.VBE.ActiveVBProject.References.AddFromFileを使う。

VBEを弄るからセキュリティがザルだ。
わかってる奴以外は使わないことをお勧めする。
660
(1): (ドコグロ MM4a-stnX) 2020/10/24(土)20:28 ID:UZJZIrrqM(1) AAS
>>652
Sheets("カレンダー")のあとにセル範囲を書けば動くんじゃね
661: (スププ Sda2-AOxM) 2020/10/24(土)21:19 ID:9VZVkXWLd(1) AAS
理解しないまま適当にいじって、エラーが出る位置を見直そうともせず修正丸投げか
662: (ワントンキン MMd2-++O/) 2020/10/24(土)23:09 ID:ZLw1Oaa2M(1) AAS
だっていつもの人だもの
663
(2): 652 (ワッチョイ 05cc-BPyH) 2020/10/24(土)23:35 ID:h35l0z5Z0(2/2) AAS
>>653

どこにSetをつければいいか分かりません

>>652

どうやって指定すればいいですか?

>>660
省2
664: (ワッチョイ fd5f-orSx) 2020/10/25(日)01:39 ID:eXluQ9/t0(1/2) AAS
うるさい
665: (ワンミングク MMd2-lCrg) 2020/10/25(日)02:05 ID:mQ0mp2TEM(1) AAS
>>663
いい加減にしろや
死ね
666: (ワッチョイ 05da-tMQb) 2020/10/25(日)11:43 ID:R1nDOxYO0(1/2) AAS
>>663
基本的なことができてないようなので職場の他の人に頼んだ方が早いだろう
667
(4): (ワッチョイ ee63-9Kcm) 2020/10/25(日)12:51 ID:6oKLzf6v0(1/2) AAS
ある変数に、なんでもいいから100文字セットしたい場合って
どの関数使えばいいの?

str = "*****..."(100文字)
と書くのはダサいから嫌です
668: (ワッチョイ cd7c-z4aL) 2020/10/25(日)12:58 ID:cOgZifE90(1/2) AAS
ダサいとする基準は?
669: (ワッチョイ 895f-fj89) 2020/10/25(日)13:44 ID:eJOhPHQ60(1) AAS
>>667
WorksheetFunction.Rept("あ" ,100)
670: (スプッッ Sd02-oXyV) 2020/10/25(日)14:25 ID:f7KUnMgPd(1/2) AAS
>>667
String(255,"*")
671: (スプッッ Sd02-oXyV) 2020/10/25(日)14:26 ID:f7KUnMgPd(2/2) AAS
100文字か。
String(100,"*")
672: (アウアウウー Sa45-TzND) 2020/10/25(日)14:53 ID:SDXJVscja(1) AAS
>>667
その質問のほうがダサい
673: (ワッチョイ ee63-9Kcm) 2020/10/25(日)17:29 ID:6oKLzf6v0(2/2) AAS
>667
です
669-671
おかげさまでできました有難う天才たち
674: (ワントンキン MMd2-++O/) 2020/10/25(日)19:06 ID:DNLjJymIM(1) AAS
やっぱりいつものあいつでしたとさ
675: (ワッチョイ fd5f-orSx) 2020/10/25(日)19:23 ID:eXluQ9/t0(2/2) AAS
なんでもいいという要件がわからない。
676: (ワッチョイ 05da-tMQb) 2020/10/25(日)20:13 ID:R1nDOxYO0(2/2) AAS
からかわれている
677: (ワッチョイ cd7c-z4aL) 2020/10/25(日)20:37 ID:cOgZifE90(2/2) AAS
というかバカにされてるなたぶん
678
(3): (ワッチョイ d163-9Kcm) 2020/10/25(日)21:38 ID:eeV8PNBf0(1) AAS
複数行まとめてコメントアウトしたい場合
どう書けばいいですか
一行ずつ'を入れたくないです。
679
(1): (アウアウウー Sa45-ot4R) 2020/10/25(日)22:03 ID:D3cPjOx/a(1/3) AAS
選択されたら行範囲をすべてコメント化/コメント解除はツールバーにある
そのバーが非表示だと表示しなければダメだが
あと、推奨されるかは分からないけど、

#if 0 then

コメント化したい行

#end if

とかよくやります
680: (アウアウウー Sa45-ot4R) 2020/10/25(日)22:04 ID:D3cPjOx/a(2/3) AAS
出だし
選択された行範囲…
です
681: (アウアウウー Sa45-ot4R) 2020/10/25(日)22:18 ID:D3cPjOx/a(3/3) AAS
自分で書いておいてなんだけど、#でぃれくてぃぶによるコメントはお勧めしません
知っておいてよいかも、で
682: (ワッチョイ 02ad-dZ3m) 2020/10/25(日)23:22 ID:JTBNO/Ek0(1) AAS
>>678
行の末尾に半角スペースとアンダーバーを入れて次の行と繋げてしまうとか?
683: (ワッチョイ 05da-tMQb) 2020/10/26(月)00:23 ID:qmNjcSj20(1/2) AAS
>>678
数行程度の編集作業で手を抜くってのはどうかな
むしろそのコメント残さないで削除した方がいいんじゃね
一時的に処理を分けるならプロシージャとかで追い出して呼び出し部分をコメントにするとかあるけど
684: (ワッチョイ fd5f-orSx) 2020/10/26(月)12:01 ID:fNFJMgyU0(1) AAS
>>678 は釣り
685: (ワッチョイ 05da-TzND) 2020/10/26(月)14:18 ID:qmNjcSj20(2/2) AAS
やっぱりそうか
686
(1): (ワッチョイ eef2-dv2+) 2020/10/26(月)22:12 ID:jYeoL4370(1/2) AAS
元々スプレットシート使ってて最近vba始めたんだけど
エクセルのvbaではスプレットシートで言うとこのsetvaluesみたいなのはないの?
2次配列をシートに貼り付けるみたいなことしたいんだけど
687
(1): (ワッチョイ eef2-dv2+) 2020/10/26(月)22:13 ID:jYeoL4370(2/2) AAS
2次配列じゃなくて多次元配列でした
688
(1): (ワッチョイ 65ce-gGz3) 2020/10/26(月)22:18 ID:LUihbr1y0(1) AAS
>>687
VBAは2次元配列限定でRangeに代入すればまとめて書き込んだり読み取ったりできる
689
(2): (ワッチョイ c2e6-E8a6) 2020/10/27(火)00:26 ID:bFDGidnH0(1) AAS
VBAはなぜか裏技っぽい文法が好きらしい
Midステートメントなんて最悪
690: (ワントンキン MMd2-++O/) 2020/10/27(火)01:13 ID:86zqMFTdM(1) AAS
>>686
>>689
釣られないように
691: (ワッチョイ eef2-dv2+) 2020/10/27(火)02:21 ID:rqaBQIGU0(1/3) AAS
>>688
何度もすいません
例えばこんな感じでrangeの範囲がわからない場合rangeのとこどうしたらいいの?

dim tmp
tmp = worksheets("sheet1").usedrange
worksheets("sheet2").range()= tmp
692
(1): (ワッチョイ eef2-dv2+) 2020/10/27(火)02:24 ID:rqaBQIGU0(2/3) AAS
ソース間違いです

dim tmp
tmp = worksheets("sheet1").usedrange.value
Worksheets("sheet2").range()= tmp
693: (スッップ Sda2-rRPK) 2020/10/27(火)02:30 ID:9HNq6CFYd(1) AAS
例のあいつ
694: (ワントンキン MMd2-gpcg) 2020/10/27(火)11:38 ID:ptoZa2VhM(1) AAS
Wordの2ページ目以降にラベルを追加する方法について教えてください

エクセルからWordを呼び出して、ラベルを追加しようとしています
以下のように記載しました

Set newDoc wdApp.Documents. Add
newDoc.Shapes.AddLabel msoTextOrientationHorizontal, 35, 300, 30, 20

AddLabelの第二引数(300になっているところ)を増やせば2ページ目以降に追加されると思いましたが消えてしまい上手くいきません

すみませんがどうすればいいかご教示お願いいたします
695
(1): (スップ Sda2-oXyV) 2020/10/27(火)12:32 ID:g67UH/S6d(1) AAS
>>692
それ、Rangeの範囲わかるよね。
1-
あと 307 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.026s