[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 17:31 / Filesize : 282 KB / Number-of Response : 1019
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part75



1 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 14:24:32.62 ID:I0u44nFvd.net]
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑2行に減ってるけど、同じ内容を3行に増やして貼り付けるナリ

ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ

※前スレ
Excel VBA 質問スレ Part74
https://mevius.5ch.net/test/read.cgi/tech/1639932059/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

321 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 11:33:03.86 ID:e+QnjkryM.net]
If Range("A1").Fomula = "" Then

322 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 11:33:45.29 ID:e+QnjkryM.net]
あ、嘘。ごめん。間違えた。忘れて。

323 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 11:39:20.91 ID:VCo1qiqP0.net]
>>315
ありがとうございます
Formulaを設定すると関数をそのまま取得してしまいました
なので空白の時の分岐ができませんでした

324 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 11:41:01.62 ID:VCo1qiqP0.net]
大丈夫です!
ありがとうございますm(_ _)m

ご存じの方いらっしゃいましたらよろしくお願いします

325 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 12:20:48.22 ID:vjLwCjzB0.net]
普通にセルのValueなりTextなりを見ればいいんじゃないの?

326 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 12:37:16.79 ID:YxxaCHXb0.net]
>>314>>318
If Range("A1").value = "" Then

>>319
その普通を学習前の段階ぽい

327 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 13:18:52.50 ID:+eE97yRCa.net]
空なのか空白なのか

328 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 13:28:01.68 ID:ez1E04nZd.net]
Trim(.Text)じゃないか?

>>321
数式が入ってたらEmptyにはならん

329 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 14:12:30.12 ID:vjLwCjzB0.net]
Empty と空文字列と空白は違うって話かと



330 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 19:12:34.37 ID:IBMOg+Z/0.net]
前任者のシートで0を書式で空白にしてるのには参ったね
textプロパティを覚えるきっかけにはなったけど

331 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 19:25:23.65 ID:fxoU/Jgx0.net]
文字列枠だけど 書式は #
よくやるw

332 名前:デフォルトの名無しさん mailto:sage [2022/03/11(金) 06:05:40.07 ID:a7Y3SJRd0.net]
すみません、質問させてください。
VBAで自作したクラスのメソッドやプロパティの一覧を列挙するにはどうすれば宜しいでしょうか?
どのような自作したクラスでも使える汎用的なものを作成したいです。

333 名前:デフォルトの名無しさん mailto:sage [2022/03/11(金) 07:32:33.79 ID:mh6S44cma.net]
すみません。
特定のセル内に有るリンクを抽出する方法は有りますか?

334 名前:デフォルトの名無しさん mailto:sage [2022/03/11(金) 08:32:32.67 ID:vHBnGMWOd.net]
>>326
VBAでは無理
ソースをエクスポートしてテキストファイルを処理するぐらいしかないと思う
VB.netならGetMembersってのがあるんだけど

335 名前:デフォルトの名無しさん mailto:sage [2022/03/11(金) 08:33:31.79 ID:vHBnGMWOd.net]
>>327
Hyperlink

336 名前:デフォルトの名無しさん mailto:sage [2022/03/12(土) 01:24:13.27 ID:7NvJtuE10.net]
>>328
なるほど、VBAでは無理なんですね。
以前、VB.Netの命令をVBAで走らせることが出来る場合があることをこのスレで聞いたことがあるような気がしましたので、
そちらとAPIで実装出来ないかを模索してみます。ありがとうございました。

337 名前:デフォルトの名無しさん mailto:sage [2022/03/12(土) 03:38:02.55 ID:pgjQzAZm0.net]
オブジェクトブラウザがやってるけど、どうやってるんだろうな
>>328
エクスポートとかしなくても、VBEオブジェクト使えばコードのスキャンはできる
プロシジャ名の列挙だけでよければここの実行結果3がそうじゃね
https://excelwork.info/excel/codemoduleproperty/

338 名前:デフォルトの名無しさん mailto:sage [2022/03/12(土) 08:17:43.49 ID:7NvJtuE10.net]
>>331
後出しになってしまい申し訳ありません。
実は、実際にやりたかったことは
自作したEntityクラスのプロパティを
片っ端からGetして配列に入れ込み、
それをシートに展開すると言うことでした。

名前の列挙さえ取得できれば
後はリフレクションで呼び出せば可能と
考えていました。

おかげで実装の目処がつきました。
ありがとうございます。

339 名前:デフォルトの名無しさん mailto:sage [2022/03/13(日) 02:21:31.96 ID:YEneWsYd0.net]
どういう状況で使うんだろう
自分で作ったのに数が多すぎて覚えてないとか?



340 名前:デフォルトの名無しさん mailto:sage [2022/03/13(日) 02:43:05.91 ID:B1jPEMw70.net]
素人ですが質問させて下さい。

画像のような、1つのシートに20行単位の表で、連番と日付を上の表から取得するようなブックを作成しています。
表の順番を変えても、常に1つ上の表の番号+1、同じ日付としたいため、直接セルを参照せずこのような関数を使用しています。

式は、↓としています。
=INDIRECT(ADDRESS(ROW()-20,COLUMN()))

起動中は問題なく動作するのですが、ブックを閉じて再起動すると、起動時に必ず落ちてしまいます。(手動計算にすると開ける)

コピーを作成して、上記の式の部分だけ消すと問題なく起動します。

この場合、何が悪いのでしょうか。或いは代替手段があれば教えて頂けると助かります。

https://i.imgur.com/cVZnwnZ.jpg

341 名前:デフォルトの名無しさん mailto:sage [2022/03/13(日) 02:49:45.62 ID:B1jPEMw70.net]
普段VBAを触っているためVBAスレで質問してしまいました。
スレ違いであればスルーして下さい。

342 名前:デフォルトの名無しさん mailto:sage [2022/03/13(日) 03:12:17.58 ID:JfJkUCau0.net]
>>335
多分Excel板なら親切な人が回答してくれすよ

343 名前:デフォルトの名無しさん mailto:sage [2022/03/13(日) 05:18:44.42 ID:JG4Baegn0.net]
>>334
offsetで良いと思う。indirectは挙動が微妙におかしい
t46=offset(t26,-20,0)

>>335>>336
回答者は被ってるからどっちでもいいよ

344 名前:デフォルトの名無しさん mailto:sage [2022/03/13(日) 11:02:15.36 ID:B1jPEMw70.net]
レスありがとうございます。

こいつ自体難のあるものなんですね。
offsetで狙った動きができました。ありがとうございます。

345 名前:デフォルトの名無しさん mailto:sage [2022/03/13(日) 14:32:38.85 ID:UXs3pJFgd.net]
普通に「=R[-20]C+1」じゃダメなのかね(R1C1形式

346 名前:デフォルトの名無しさん mailto:sage [2022/03/14(月) 05:49:07.49 ID:3S2IFgLOM.net]
>>339
これだと移動させたとき式の値も変動してしまいました。

347 名前:デフォルトの名無しさん mailto:sage [2022/03/14(月) 07:57:10.59 ID:727wXMaZd.net]
>>340
失礼、移動後も保証しないとだめだからこれではだめですね

348 名前:デフォルトの名無しさん mailto:sage [2022/03/14(月) 17:48:06.77 ID:yx1wpkrnM.net]
>>334ですが、当初安定していたもののまた同じ現象になりました。

端末を変えるなり新しいブックにして作り直したり色々試すも改善せず、T列の参照だけがこの現象を引き起こしている(参照先が文字列だと発生しないが数値は発生)ことが分かったため他の列を経由して参照する形で概ね落ち着きました。

エクセル自体のバグなのか分かりませんが同種の状況の方の参考まで。

349 名前:デフォルトの名無しさん mailto:sage [2022/03/15(火) 13:19:58.65 ID:cMhtDWKy0.net]
>>342
多分ブックが壊れている
新しいブックを作り、1シートずつコピーすれば直る可能性がある
その状態で使い続けると完全に壊れて、開けなくなる可能性があると思う



350 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 04:32:35.42 ID:3pfuXf5y0.net]
ブックがブックわれている

351 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 07:48:40.55 ID:/fL7/vIcd.net]
セル「 ちくしょーちくしょー! 完全体に…… 完全体にさえなればー! 」

352 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 07:55:37.71 ID:tVfnjSl40.net]
エクセル「私の行数は 1048576です」

353 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 10:32:53.21 ID:EfOqqAli0.net]
質問させて下さい。
EXCELの自ブックのシートにVBAにてADO接続でSQLを投げてRecordSetに値を取得していますが、
あまりに遅いのでINDEXを対象のシートに設定したいのですが、可能でしょうか?
可能であれば実装方法を教えて頂けるとありがたいです。

CREATE INDEXのSQLを投げると
「この操作は、このタイプのオブジェクトには実行できません。」というエラーが返って来ます。

EXCEL VBA上でのADO接続だったのでこちらのスレで質問させて頂きました。
もしスレ違いで有れば誘導して頂けるとありがたいです。

354 名前:デフォルトの名無しさん [2022/03/16(水) 20:05:55.54 ID:E9jeVJ9d0.net]
エクセルの開発、挿入、フォームコントロールでリストボックスを作って操作するのですが
sheet.ListBoxes("List").AddItem "A" だったかな?で追加できるんですが
sheet.ListBoxes("List").Clear で全て消去したくてもエラーになります。
sheet.ListBoxes("List").RemoveItem 1 で消せるので .ListCountが0になるまで
消していくとやりたいことはできるのですがClearのような1行で消す方法が知りたいです。
あと選択している内容を取得したいのですが.Valueだと内容ではなくインデックス番号?が返ってきます
選択している内容を文字列で取得できないのでしょうか。検索してもユーザーフォームのページばかり
出てきてわかりません。どなたか知っていたら教えてください。

355 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 04:53:04.06 ID:2UkhCjLQ0.net]
>>348
全消しはRemoveAllItemsかな?
内容の取得はItem(インデックス番号)かな?
マニュアル見てそれっぽい単語を見つけただけだから違ってるかも

356 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 05:57:03.26 ID:RdQIwXxN0.net]
最近のExcelってヘルプもついていないの?

357 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 06:07:57.47 ID:UlLj9IGM0.net]
ネットがあるからねぇ

358 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 11:46:40.93 ID:mL7eqXCg0.net]
それでなくなったのか、知らんかった

359 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 12:31:38.84 ID:9VjLQzax0.net]
F1押すだけでヘルプ出てくるの便利だったのにね



360 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 12:35:28.43 ID:++LfIShu0.net]
F1ヘルプ起動大嫌い
起動遅いから誤爆した時ストレス

361 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 12:48:39.33 ID:Rh0i5fdo0.net]
まあ市販ソフトとかゲームとかおしゃんな小物とかもネット参照多くなったしね

362 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 15:59:04.45 ID:2UkhCjLQ0.net]
2010のあたりでヘルプがオンラインになって、旧バージョンのヘルプファイルを無理矢理インストールして使ってた記憶がある
あれってどのバージョンの話だっけ

363 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 16:00:36.21 ID:2UkhCjLQ0.net]
>>348
VBAから操作するんなら、たぶんフォームコントロールよりActiveXコントロールのが簡単だと思うよ
MSは推奨してないみたいだけど

364 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 18:51:23.33 ID:NNC6CjWiM.net]
やたら重かった無能なイルカよりはマシだろう

365 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 19:51:28.31 ID:hQEb7r5k0.net]
お前を消す方法なつい

366 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 20:00:50.39 ID:+xJma3Ej0.net]
>>348
https://www.sejuku.net/blog/37803 ここ読んでがんがれ

367 名前:デフォルトの名無しさん [2022/03/17(木) 22:15:36.31 ID:UYkpbTrn0.net]
>>349
全消しはRemoveAllItemsでできました。Itmeで内容はとれずエラーになりました。
マニュアルはマイクロソフトのExcel VBA リファレンスかな?そこで検索かけてもよくわからないのであきらめます。
Valueでもやりたいことはできそうなので

>>357
ActiveXでのやり方はわかるんですけどできればActiveXより新しいの使いたいんですよね。
別件でActiveXが大量に使われているブックが物凄く重くなっているのを見たことあってあまり使いたくない。てのもあります。

>>360
ユーザーフォームのことじゃないです。

368 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 09:26:17.20 ID:yuFF0zGe0.net]
じゃあこれ
officetanaka.net/excel/function/tips/tips56.htm

369 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 10:46:32.32 ID:GvFVeYD4d.net]
>>361
List(参照したい位置)でいけるんじゃないか
参照したい位置はListIndexでとれるかと
複数選択ならSelected(位置)でTrueになるところかな



370 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 19:57:18.31 ID:hw4UnylL0.net]
シート上で任意に選択した範囲を set myRange = 選択範囲 のように代入した後、
For Each buf In myRange.Value
処理A
Next
という処理をしようとすると、
・選択範囲が複数ある場合:正常に動作する
・選択範囲が1つの場合:「型が一致しません」のエラーになる

「For each ○ IN ●」の●には複数セルが指定されていないといけないということでしょうか?

371 名前:デフォルトの名無しさん [2022/03/18(金) 23:38:51.84 ID:q1DQLrxB0.net]
>>364
そうです 

set buf as range
For Each buf In myRange
debug.print buf.value
Next
こんな感じじゃだめですか?

372 名前:デフォルトの名無しさん [2022/03/18(金) 23:53:01.28 ID:q1DQLrxB0.net]
おっと間違えた
dim buf as range
For Each buf In myRange
debug.print buf.value
Next

373 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 00:50:36.99 ID:OOddD3UI0.net]
myRange.Value の Value がおかしかったのか。
ありがとうございます。

374 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 02:03:56.48 ID:yYNieGSo0.net]
>>364
myRangeの何をbufとしてとりたいの?各セル、連続した複数のセル、myRange全体によつて正しいこーどは異なる

375 名前:364 mailto:sage [2022/03/19(土) 10:45:02.08 ID:OOddD3UI0.net]
>368
任意のドラッグ操作で選択したセルと同じ行のL列(左から12番目)に入っている文字列を結合して表示させようとしました。

Dim cnt As Integer
Dim myRange As Range
Dim buf As Range
Dim target As String

cnt = Selection.Rows.Count
Set myRange = Range(Cells(Selection.Rows(1).Row, 12), Cells(Selection.Rows(1).Row + cnt - 1, 12))

For Each buf In myRange
target = target & buf & vbCrLf
Next

Debug.Print target

376 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 10:48:26.22 ID:kJy21FG50.net]
>>347で質問させて頂いたものです。
色々調べましたがシートにINDEXを設定するのは実現可能か分からなかったのと、
出来ない場合、代替案を考えたいのですが、
ひとつのシートに20万行、100列の一覧が有ったとして
そのとき、ひとつの項目(項目1とします)はある値とイコール、更に別の項目(項目2とします)は
項目1で抽出したレコードの内の最大値を求めたいです。

どのような方法が一番速く処理出来ると思いますか?

377 名前:364 mailto:sage [2022/03/19(土) 10:48:43.76 ID:OOddD3UI0.net]
>>369は正常に動作したコードです。

最初は下記のようなコードでエラーとなっていました。

Dim buf As Variant ←Variant型にしていた。

For Each buf In myRange.Value ←.Valueを付けていた。
target = target & buf & vbCrLf
Next

Debug.Print target

378 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 10:51:21.24 ID:CvJNM5+IM.net]
範囲検索するのにfindとworksheetfunction.matchとではどちらが速いですか?

379 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 10:52:04.86 ID:CvJNM5+IM.net]
ちなみに完全一致の場合です



380 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 11:51:46.09 ID:/t3SgnSXa.net]
自分で試せばいいだろw

381 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 11:51:57.89 ID:i9OMIEsk0.net]
試したほうが早いよ

382 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 12:52:21.15 ID:UXt2lmR80.net]
は?試してたらこんな所で聞きませんけど?

383 名前:デフォルトの名無しさん [2022/03/19(土) 12:52:58.71 ID:4DGoWoBi0.net]
>>369
>cnt = Selection.Rows.Count
>Set myRange = Range(Cells(Selection.Rows(1).Row, 12), Cells(Selection.Rows(1).Row + cnt - 1, 12))

Set myRange = Cells(Selection.Row, "L").Resize(Selection.Rows.Count)
もっと簡単に書けそうな気もするがこんなもんかな

384 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 13:47:10.61 ID:zEPprvQva.net]
>>376
試してなくても、こんなところで聞かないでくださいw

385 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 14:44:42.82 ID:qNoriQBK0.net]
>>377
ちゅんちゅんさん推奨の書き方か
resize真似して使ってたんだけど間違えやすかった

386 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 15:12:32.83 ID:OOddD3UI0.net]
>>377
ありがとうございます。.Resizeを使うとスマートに書けるんですね。使ってみます。

387 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 15:57:19.25 ID:rhR/rlzyd.net]
autofilterで表示されたものだけで、列をautofitすることは出来ますか?

388 名前:デフォルトの名無しさん [2022/03/19(土) 16:36:01.13 ID:4DGoWoBi0.net]
SpecialCells(xlCellTypeVisible)でできんじゃねーかな

389 名前:デフォルトの名無しさん [2022/03/19(土) 16:40:58.85 ID:AuBNrAzT0.net]
コードは



390 名前:スマートなのに…って言われろ []
[ここ壊れてます]

391 名前:デフォルトの名無しさん [2022/03/19(土) 18:04:38.19 ID:4DGoWoBi0.net]
Range("テーブル1[項目A]").SpecialCells(xlCellTypeVisible).Columns.AutoFit
出来ないのかと思ったらできるじゃん

392 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 18:22:46.82 ID:qn2+ggVDa.net]
VBA素人にご教示ください

PowerQueryで整形したテーブルのデータを
別ブックのVBAに引っ張ってきたい場合
・列データをユーザー定義型にまとめる
・ListObjectを使う
どちらがベターでしょうか?

393 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 18:48:13.74 ID:XaCRBAWQM.net]
引っ張ってきたい側でpowerquery使って整形したテーブルをソースに指定する

394 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 19:07:47.91 ID:qn2+ggVDa.net]
すいません、うまく説明できてませんでした
PowerQueryとVBAは別ブックでも同じブックでもいいです

やりたいことは
巨大なテーブルを参照してVBAで検索フォームを作りたい
です
その場合、テーブルデータを
・ユーザー定義型にまとめる
・ListObjectを使う
どちらがいいのか?が質問の意図です
改めてお願いします

395 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 20:45:24.46 ID:ecCVM1RA0.net]
全くの素人で申し訳ないんですけど、やりたい事

❶:B10からスタートしてボタンを押したら次の行に指定された文字を入力していく。

❷:Ifを使って、もしB29行まで埋まった状態でボタンを押したら
 B2からB29までコピーしてB1からB28にペースト
 →B29に指定された文字を入力

色々頑張ったけど自分で❶は出来たけど❷ハードルが高かった・・・

396 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 21:21:42.73 ID:titlKmjCa.net]
2のどの部分ができないのか

397 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 21:33:07.78 ID:qNoriQBK0.net]
If Range("B29")<>"" then Range("B1:B28").value = Range("B2:B29").value
こんな感じか?

398 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 22:17:04.40 ID:hVJQeY+Td.net]
>>389
IFで範囲内空白があった場合を出そうとしてたんだけどうまくいかなかったんや・・・

399 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 22:17:58.96 ID:hVJQeY+Td.net]
因みに入れたいのは勝利か負け。2つボタン作れば別々に行けるかな



400 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 22:56:32.21 ID:hVJQeY+Td.net]
>>389
ありがとう。認識できた。そしてなんとか検索して思うような結果になった!

401 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 00:13:30.21 ID:ZUsPYd03M.net]
>>382
>>384
ありがとうございます。
明日試してみます。

402 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 01:49:20.37 ID:CEJcVsO40.net]
>>387
巨大ならlistobjectかadoじゃないの、速度的に。
巨大じゃなきゃ何でもいいや。

403 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 06:37:24.28 ID:Md+DYeh30.net]
>>372
ちゃんとタイマー走らせて確認してるわけではないけど体感的には大して変わらない
でも完全一致で検索をかける場合matchは検索対象が存在しないとエラー停止するのに対してfindはset range変数=対象範囲.find(ryで検索をかけてやればrange変数がnothingか否かで判別可能だから個人的にはfindの方が好きかなぁ

404 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 08:33:55.10 ID:Zh6y5r970.net]
>>370
同じようなことを前考えたけど、恐らくEXCELのシートにインデックスを貼るのは無理っぽい。
ADOどころか拡張機能であるADOXでも無理だったはず。

代替案としてはSQLが使えないので、都度個別で考えるしかないけど、とある項目の最大値や最小値が入っているレコードの内容が欲しいなら基本、MATCH関数での検索となると思う。

405 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 10:22:27.56 ID:HKRI5d8YM.net]
>>370
> どのような方法が一番速く処理出来ると思いますか?
フィルターかけてSUBTOTAL(4, 範囲)

406 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 13:33:44.21 ID:NjSblaend.net]
>>382
>>384
うまくいきました。
ありがとうございます。

407 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 15:42:40.21 ID:IQ9r07oYM.net]
>>369
すまん、368だけどコード見てもやりたいことがまるでわからんので、回答書けない

408 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 19:07:32.87 ID:fXpRWn260.net]
初心者のため、ご存じでしたらご教授お願い致します。
エクセルから印刷する際、プリンタをカラー、モノクロをそれぞれ
自動印刷できませんでしょうか?
PageSetup.BlackAndWhite = True/Flase
以外で方法がありましたら、ご教授をお願い致します。

409 名前:デフォルトの名無しさん [2022/03/20(日) 19:41:51.49 ID:V5Xg0/PX0.net]
>>401
その方法では成功しないのですか?



410 名前:デフォルトの名無しさん [2022/03/20(日) 19:51:58.85 ID:aHWtYUUu0.net]
素人にご指導願います。

生年月日や所属等を含めた社員のリストを作ってまして、氏名等で検索できるようオートフィルターをvbaで作るところまではできました。

「チェックボックスにチェックを入れたら、指定した日付と同じ生年月日でフィルターをかける」という操作は可能でしょうか。
例えば、セルに1990/3/1を入れてるとして、チェックボックスにチェックを入れたらフィルターがかかって1990/3/1の生年月日だけ出てくる(それ以外は消える)というものです。
チェックボックスにチェックを入れるかどうかで指定した日でフィルターをかけるかどうかを判断したいです。

もし可能でしたら、ご教示いただけると幸いです。
よろしくお願いします。

411 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 19:56:19.87 ID:fXpRWn260.net]
>>402
PageSetup.BlackAndWhite = Falseで白黒印刷設定したのですが、
塗りつぶしの背景が白で印刷されてしまいます。
また、カラーの図が白黒で印刷できませんでした。
プリンタのプロパティにある印刷設定(両面、集約、カラー等)はVBAでは制御できないでしょうか?

412 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 20:02:50.72 ID:0CQh90gjM.net]
>>401
> 以外で方法がありましたら
なぜこういう人は以外でないとダメな理由を書かないのか

413 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 20:15:26.37 ID:KxZjhn5zM.net]
>>404
すまん、リロードしてなかった
っていうか最初から書けよ…

> PageSetup.BlackAndWhite = Falseで白黒印刷設定したのですが
白黒設定は True じゃね?

> プリンタのプロパティにある印刷設定(両面、集約、カラー等)はVBAでは制御できないでしょうか?
無理、
Application.Dialogs(xlDialogPrinterSetup).Show
で、ダイアログを表示させるのが精一杯

414 名前:デフォルトの名無しくん [2022/03/20(日) 20:21:02.46 ID:V5Xg0/PX0.net]
>>404
プリンタドライバをもう一つ入れて、そのドライバの初期設定を白黒にして「白黒印刷専用」とする。
このプリンタ(ドライバ)をVBAで選択して印刷する。

過去にやったことがあるけどちょっとめんどくさかった記憶
他にいい方法あるのかな

415 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 20:23:50.61 ID:Md+DYeh30.net]
>>403
チェックボックスにマクロを登録してフィルターのキーをその入力があるセルを参照すれば良いだけだと思う
例外処理があるならそれはどういう条件で省くのか分からないから自分で考えて

416 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 20:36:02.96 ID:fXpRWn260.net]
>>406
ご回答ありがとうございます。
理由も一緒に書けばよかったですね。大変失礼致しました。
以後気を付けます。

やはり無理なんですね。
他のかたがご指摘のように、白黒専用プリンタドライバを増やして
プリンタを切り替えてトライしてみます。

ご指摘の通り、PageSetup.BlackAndWhite = Trueが白黒です。失礼致しました。

417 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 20:41:31.10 ID:fXpRWn260.net]
>>407
ご回答ありがとうございます。
プリンタドライバを増やす方法、ご提案ありがとうございます。
早速トライしてみます。
ドライバーを入れた後、プリンタの基本設定で白黒を初期設定にすれば白黒専用でいけますね。

418 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 21:09:18.42 ID:j6YhEUF6d.net]
>>403
多分VBA要らない
スライサーで十分

419 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 02:46:04.32 ID:HoitaytG0.net]
スライサやタイムライン知らない人多いらしいね
マイナーなのかな?



420 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 06:08:07.49 ID:8sRo6eoq0.net]
マイナーはマイナーだと思う
MOS受けて初めて知ったわ

421 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 07:21:11.67 ID:K7MjVs2M0.net]
テーブルからしてまだマイナーだからかしら?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<282KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef