[過去ログ]
VBAなんでも質問スレ Part2 [転載禁止]©2ch.net (1002レス)
VBAなんでも質問スレ Part2 [転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1432173164/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
308: デフォルトの名無しさん [sage] 2017/04/22(土) 11:27:30.44 ID:6RXuRSFv >>306 Dictionaryのvalueは変更可能 http://mevius.5ch.net/test/read.cgi/tech/1432173164/308
309: 299 [sage] 2017/04/22(土) 15:29:06.19 ID:zUhE/Mll >>308 >>307 理解するのにかなり時間がかかりましたがDictionaryなんとなくわかりました。 これって Dim とかPublicとかの変数とは別に存在できるんですね。 全く未知の分野ですが使ってみます。ありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/309
310: デフォルトの名無しさん [sage] 2017/04/22(土) 20:43:48.30 ID:zUhE/Mll Dim dic As New Dictionary Dim i As Integer dic.Add "キー1", "アイテム1" dic.Add "キー2", "アイテム2" dic.Add "キー3", "アイテム3" Dictionaryで指定した"キー"と "アイテム"は処理が終了するとリセットされるようですが、 グローバル変数のように処理が終了しても次実行されるまで記憶させておくようにする事は出来ないのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1432173164/310
311: デフォルトの名無しさん [sage] 2017/04/22(土) 22:48:51.75 ID:AOzJBbd9 >>310 プロシージャを跨いで値を保持させるなら、グローバルな配列変数、(アプリケーションがExcelならば)セル、シェイプ、カスタムドキュメントプロパティ、グローバルコレクション、自作のグローバルクラスのインスタンスなどに値を記憶させるしかない でもそれならわざわざプロシージャ内でDictionaryを使って連想配列を操作するより、ExcelのセルにKeyと値を書き込んで配列アクセスして読み書きする処理の方が遥かに楽だと思う http://mevius.5ch.net/test/read.cgi/tech/1432173164/311
312: デフォルトの名無しさん [sage] 2017/04/22(土) 23:30:15.48 ID:zUhE/Mll >>311 ありがとうございます。 今作っているコードでセルへのアクセスが膨大になってきて処理時間がどんどん長くなる傾向がみられまして 全操作をセルにアクセスせずに完結させようと色々考えていましたがなかなかそうはいかないようですね。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/312
313: デフォルトの名無しさん [sage] 2017/04/23(日) 05:30:19.61 ID:t5ve42Di >>312 Dim dic As New Dictionary の宣言を何処でしているかによるんじゃね? http://mevius.5ch.net/test/read.cgi/tech/1432173164/313
314: デフォルトの名無しさん [sage] 2017/04/23(日) 10:16:09.39 ID:wfwXXeKO >>312 標準モジュールとかでDictionary型のオブジェクト変数をグローバルスコープ(Public)でNew宣言すれば、処理を抜けてもDictionaryのItemは初期化されないんじゃないのかな ただ単なる配列の処理でデータが数千件程度なら、描画止めた状態でワークシート使った方が遥かに楽だと思うが。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/314
315: デフォルトの名無しさん [sage] 2017/04/23(日) 16:51:51.75 ID:fs201BJ1 >>311 引数に渡すってのを忘れてるぞ。 一番使われてるんじゃないか? http://mevius.5ch.net/test/read.cgi/tech/1432173164/315
316: デフォルトの名無しさん [sage] 2017/04/23(日) 17:11:32.92 ID:yvJyPXpi >>315 何の引数に渡すことを指してるのかな? http://mevius.5ch.net/test/read.cgi/tech/1432173164/316
317: デフォルトの名無しさん [sage] 2017/04/23(日) 18:02:04.26 ID:fs201BJ1 >>316 プロシージャを跨ぐって話だろ。 別のプロシ−ジャに引数として渡せば形の上ではそれぞれのローカル変数でも値は保持されるだろ。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/317
318: デフォルトの名無しさん [sage] 2017/04/23(日) 18:27:09.16 ID:yvJyPXpi >>317 >>310を読んでなんとなく、一個のルーチンのプロシージャ間の値の受け渡しの話ではなく、ルーチン内で一度AddしたDictionaryのKeyとItemを何らかの形で保存して、同じルーチンを再実行したときにKeyとItemを再利用することが出来るかどうかという話だと思ったんだが まぁ、オブジェクトプロパティへの値の保存も実際はそのオブジェクトを定義してるクラスのメソッドに引数を渡してるのと同じだから、変わらないといえば変わらないけど http://mevius.5ch.net/test/read.cgi/tech/1432173164/318
319: デフォルトの名無しさん [sage] 2017/04/28(金) 17:33:41.10 ID:krqKI6DB 超既出FAQですな。 『Public 宣言された変数の有効期間』 https://support.microsoft.com/ja-jp/help/408871 簡単に言うと、メソッド実行中以外はいつでもpublic変数はクリアされうるから、値が残っていることを期待したマクロを書くなってこと。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/319
320: デフォルトの名無しさん [sage] 2017/04/28(金) 19:14:11.69 ID:AZuqyiJa >>319 俺は使う時にクリアされてるかチェックしてクリアされてたら再設定するようにしてるな。 値が0だったら値を取得するFunctionを呼び出すって感じ。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/320
321: デフォルトの名無しさん [sage] 2017/04/28(金) 22:13:43.74 ID:A3VkBONm Publicな静的変数は使わない。 エクセルのセルとかワードの文書変数とかの規定オブジェクトにデータを書き込んだ方が便利 http://mevius.5ch.net/test/read.cgi/tech/1432173164/321
322: デフォルトの名無しさん [sage] 2017/04/29(土) 02:16:02.91 ID:2iGvQ1xG >>321 いや、それは格好悪いんじゃね? セルを使ったりCustomDocumentPropertiesも使うけど、それに合ったものだから使うわけでPublic変数に合ったものもある。 適材適所だろ。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/322
323: デフォルトの名無しさん [sage] 2017/05/25(木) 20:51:55.45 ID:yS9f0RVc ontime で実行するプロシージャって標準モジュールに書かないとあかんのか。 このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。って出た。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/323
324: デフォルトの名無しさん [sage] 2017/05/25(木) 21:07:30.77 ID:JTnnq+Q0 >>323 スコープ 普通にCallで呼び出せる場所にないと実行できないのは、どの方法でも同じ http://mevius.5ch.net/test/read.cgi/tech/1432173164/324
325: デフォルトの名無しさん [sage] 2017/05/26(金) 00:03:34.69 ID:Fw61rXsb >>324 ThisWorkBookのモジュールからOnTimeでThisWorkBookのモジュール内のPrivate Sub を予約したんですが・・・これじゃ駄目なんですかね? http://mevius.5ch.net/test/read.cgi/tech/1432173164/325
326: デフォルトの名無しさん [sage] 2017/05/26(金) 23:19:52.51 ID:Fw61rXsb >>325です OnTimeで実行予約するプロシージャを標準モジュールに移動したら動くようになりました〜 http://mevius.5ch.net/test/read.cgi/tech/1432173164/326
327: デフォルトの名無しさん [] 2017/06/05(月) 21:02:56.92 ID:bd1ggU41 特定の文字が含まれているセル(複数ある)を検索し、 検索されたセルを含む行全体(Entirerow)を同時選択する方法 以上お願いします。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/327
328: デフォルトの名無しさん [] 2017/06/05(月) 21:06:49.56 ID:bd1ggU41 その文字を含むセルを、行ごと削除したり、行ごとコピーしたりと、いろいろしたいので質問致しました。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/328
329: デフォルトの名無しさん [sage] 2017/06/05(月) 21:25:48.60 ID:nSGQpg3a 鮮やかな丸投げっぷりにワラタ 作成依頼OKな Excel VBAスレと間違えてない? http://mevius.5ch.net/test/read.cgi/tech/1432173164/329
330: デフォルトの名無しさん [sage] 2017/06/05(月) 21:31:47.51 ID:tRFV5HQ5 >>328 とりあえず、複数行を選択するところをマクロの記録で見てみたら? ctrlキー押しながら選択するのとshiftキーを押しながらのとで。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/330
331: デフォルトの名無しさん [sage] 2017/06/05(月) 21:41:12.12 ID:jKyX/qwq 検索対象のセル範囲でForループを回す セル値に特定文字を含むセルが見つかる度にEntireRowを取得して変数に入れるかUnionで選択対象の範囲をマージしていく ループ終了後にSelectする 以上 http://mevius.5ch.net/test/read.cgi/tech/1432173164/331
332: デフォルトの名無しさん [] 2017/06/05(月) 21:45:35.27 ID:epzJZZwH >>327 Ctrl+Fで検索しろやボケナス ちゃんと行選択までしてくれるぜ http://mevius.5ch.net/test/read.cgi/tech/1432173164/332
333: デフォルトの名無しさん [] 2017/06/05(月) 22:37:03.17 ID:bd1ggU41 ごめんなさい、質問者です。 ここじゃなかったのですね。上に上がったやり方でできそうなのでやってみます。ありがとうございます http://mevius.5ch.net/test/read.cgi/tech/1432173164/333
334: デフォルトの名無しさん [sage] 2017/06/06(火) 05:49:03.11 ID:tznXutzN 色々細かい条件でどんなコードが効率いいか、変わってくるでしょ。 例えばそのセルがあるのは、特定の行だけとか、検索文字列はセルに完全一致なのか含まれるのか、など。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/334
335: デフォルトの名無しさん [sage] 2017/06/06(火) 09:11:47.41 ID:YhE+Nuz8 331だが、同じ行に該当セルが複数ある場合は無駄が生じるな 実現したい機能次第だが、工夫が必要かもな http://mevius.5ch.net/test/read.cgi/tech/1432173164/335
336: デフォルトの名無しさん [] 2017/06/07(水) 19:31:10.77 ID:e13xfCG0 はじめまして。以下2点、教えていただけると幸いです。 環境は、OS:Windows7, Excel2010です。よろしくお願いします。 1.プルダウンの初期値設定 セルA1にりんご、A2にバナナ、・・・のようにA列にある項目をプルダウンで選択したいです。 このとき、「A列のj行目(パラメータ選択可能)を初期値にしたプルダウンをB1に設置する」VBAのコマンドを教えていただきたいです。 2.ファイル名の変更 aaa.txtというファイルをデスクトップに出力するマクロを作れました。 このマクロ実行後、再度実行するとaaa(2).txtのファイルを、再度実行するとaaa(3).txtのファイルを出力・・・ このようなVBAのコマンドを教えていただきたいです。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/336
337: デフォルトの名無しさん [sage] 2017/06/07(水) 21:49:32.12 ID:nqbSOdK9 >>336 コマンドはありません http://mevius.5ch.net/test/read.cgi/tech/1432173164/337
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 665 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.012s