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


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

Excel VBA質問スレ Part6



1 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 19:31:39 ]
ExcelのVBAに関する質問スレです

質問前に 【 >>2-3 】 あたりを良く読むこと

前スレ
pc11.2ch.net/test/read.cgi/tech/1197448064/

★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。

★2 ExcelのVBA以外の部分に関する質問はNGです。
   但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。

★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。
   
 VBAとは、『Visual Basic for Application』の略で
  Application
  ├Workbooks
  |└Workbook
  |  ├Worksheets
  |  |└Worksheet
 というApplication以下のオブジェクトを、VB言語で操作するものを指します。 
 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。

★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。

★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み
   コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。
   ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。

321 名前:デフォルトの名無しさん [2008/04/16(水) 19:03:22 ]
エクセルは未来のアクセスで
アクセスは未来のエクセル也
地獄と極楽を永劫回帰


322 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 00:24:35 ]
ようやくうちの会社の全PCにアクセスが入ったんだが
何に使うのかよく分からない
アクセスだとできるけどEXCEL+VBAだとできないことって何?
楽で見栄えが良くなるってだけなのかな?
EXCELVBAはそこそこ使えるようになったが
アクセスを勉強するか、エクセルをさらに研鑽するか迷う

323 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 01:30:45 ]
>>322
C++などからもデータベースにアクセスできるとかじゃね?
そりゃ、C++でもExcelはいじれるけど・・・

324 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 06:14:05 ]
>>322
Excelも便利だがAccessもいいぞ。
業務アプリのGUIも作れるし、百万件ぐらいのデータ処理とかも可能。
RDB+VBA+レポート。
何でも出来てしまうので、何でもやりすぎてしまう。
そんなツール。

325 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 06:55:20 ]
Excelを正しく使わないと会社はすぐ、Access等のDBを導入しようとするが
そこに待っている世界は....

326 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 06:57:49 ]
>>322
エクセルを研鑽するにしてもアクセスのようなデータベースを知ってからのほうがいいです。
エクセルしか知らないと斜め上のテクニックばかりに身に付いちゃうかもね。

327 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 07:29:25 ]
EXCELの典型的斜め上テクニック

串刺し演算
セルの結合
複雑な集計はVBAで
報告書、仕様書、企画書その他何でもEXCELで

328 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 08:29:18 ]
>>322
例えばファミレスの注文データベースを作るとします。
一回の注文には複数の料理が含まれるとして

注文件数の合計
料理別の数量合計

を計算したい時、あなたならどんな表を作って集計しますか?

329 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 10:25:45 ]
>>328
お前がAccessで作ろうと思ってる表と同じもの



330 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 10:41:03 ]
もっとrelationalなもの作るだろ?(それなりに高いスキルは要るが)
Accessのデータ構造は単純に日付/客ID/料理ID/点数
で決まり。必要に応じてSQLで集計する。


331 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 10:55:25 ]
Excelでも同じ構造でいいじゃん。何か不都合でも?

332 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 11:24:43 ]
ファミレスごときのメニューでリレーショナルなものってwwwwww(ゲラプッチョwww
高いスキルってwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

333 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 12:28:23 ]
EXCELだと一定数のデータの集計だと
中間集計取りながらリアルタイムで全体見ながら
データ入力出来るから集計は早い。
だが、どんどんデータが入ってくるよう
な対象には弱い。量が増えてくると
ニーズも増えて、細かい集計項目追加の嵐
魑魅魍魎になって作成者も理解できなくなる
こういった対象にはDBのほうがまだ強い
ってか、こういったニーズを解決する為に
DBが作られた(とも言える)

334 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 14:30:27 ]
>>322
素人レベルならエクセルで十分だと思うよ

>>323
ほとんど関係ないよ

>>333
大筋は合ってるけどDBってのは戦後からある概念だよ。
DB→Accessの意味で言ってるのかな?

335 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 16:21:45 ]
戦後って久しぶりに聞いたわ

336 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 16:23:15 ]
もはや戦後ではない

337 名前:328 mailto:sage [2008/04/19(土) 17:18:29 ]
>>330が示したモデルでいいでしょう。
客IDだとお客さんをIDで区別してそうな印象を与えそうなんで注文IDと呼びかえますね。
さらに何番の席で受注したか、その席は禁煙席か喫煙席かも記録しましょうか。

日付/注文ID/席番号/喫煙区分/料理ID/点数/


338 名前:328 mailto:sage [2008/04/19(土) 17:33:28 ]
24番の禁煙席に案内したお客さんが、やっぱり55番の喫煙席に移動したいと希望したら、データもそれにあわせて訂正したいですよね。
Excelだとこの場合、席番号と喫煙区分を何行も書きかえないといけません。
この時、席番号だけ直して喫煙区分を直し忘れたりしないように気を付ける必要もあります。

339 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 17:43:11 ]
いや、それはどう考えてもExcelの使い方が悪い。



340 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 17:59:15 ]
どう考えたんだよ

341 名前:328 mailto:sage [2008/04/19(土) 18:00:51 ]
Accessなどのリレーショナルデータベースではこのような問題が解決できる仕組みが提供されています。


>>339
まあお好きなように。



342 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 18:21:09 ]
Excelは横展開でデータを記載しないと使い勝手悪い。
Accessは縦展開でデータを追加してかいて、用途に応じて必要な表に組み合わせる。


343 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 19:58:47 ]
データの持ち方次第でAccessだって修正箇所多くなるだろ?
どの座席が喫煙/禁煙なのかなんて予約データに関係ないんだから別の場所にあればいいじゃん。
「Aさんは24番の禁煙席を予約している」じゃなくて「Aさんは24番を予約している」「24番は禁煙席である」だろ?
データ構造(設計)にExcelやAccessが関係してくるのか?

344 名前:328 mailto:sage [2008/04/19(土) 20:59:31 ]
>>343
正規化のことを言っているのですね。
おっしゃる通り、喫煙区分は席番号に従属しています。従属の解消はExcelでも簡単です。VLOOKUPを使えばいいのです。

Excelが苦手なのは注文と料理のような一対多の関係を扱うことです。

345 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 01:23:54 ]
マスタの種類が増えれば増えるほどLOOKUP系では扱いづらくなるな
VBAで条件増やしたLOOKUP亜種を作成しても良いけど、自分だったら素直にSQLを
書くほうを選ぶ

346 名前:デフォルトの名無しさん [2008/04/20(日) 15:29:49 ]
Enabledでテキストボックスをロックしたときに文字の色が変わらないようにしたいんだが、できるか?

347 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 15:30:50 ]
できるがお前の態度が気に食わない

348 名前:346 [2008/04/20(日) 19:04:54 ]
すまなかった。他のことは出来るんだが、なぜかこればかりは頑張って探しても見つからなかったんだ。
人に聞くってのは、勇気がいるもんなんだぜ。こんな質問のために荒れるのはいやだろ?さぁ教えてくれ。

349 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 19:10:22 ]
なんだそりゃ脅迫か?



350 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 19:11:14 ]
>>348
できるか?に対してちゃんと「できる」って言ってくれたんだから
贅沢言うなよ

351 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 20:11:10 ]
>>348
荒れるのは嫌だが、お前に教えるのはもっと嫌だ。

352 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 20:29:04 ]
荒れて結構w 誰も困らないスレだwww


353 名前:デフォルトの名無しさん [2008/04/20(日) 20:43:40 ]
あるシートに在るセルの内容を
別のシートにコピーするにはどうしたらいいですか?

シート名はプログラム内に書き込まれてあって、
もしコピー先のシートがなければ、新規にシートをつくりたいのです。

354 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 20:53:22 ]
>>353
その操作をキーボードマクロで捕捉してみたら?

355 名前:デフォルトの名無しさん [2008/04/20(日) 22:52:39 ]
>>354
頭良いですね。
ありがとう。

356 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 18:45:55 ]
>>355
普通。俺は何もプログラミング言語分からず、VBAに挑戦した。独学で色々して、悩んでもがいて、なんとかクラスモジュールを使えるくらいまでになった。
まずはすぐ聞かずに、マクロ記録とかぐらい試せ。

357 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 20:01:01 ]
>>356
クラスモジュールを使うとどんなことが実現できるの?

358 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 20:35:56 ]
>>356-357
まさにそこで今ハマってます。

Excel2007みたいな感じで、ステータスバーに「合計」と「データの個数」が
常に両方とも表示されていたら便利だなぁ、と思ってこんなマクロを書いてみました。
------------------------------------------------------------------------
Sub Worksheet_SelectionChange(ByVal Target As Range)

  'ステータスバーに「合計」と「データの個数」を二つとも表示

  Application.StatusBar = "  合計=" & WorksheetFunction.Subtotal(9, Target) & _
              "  データの個数=" & WorksheetFunction.Subtotal(3, Target)

End Sub
------------------------------------------------------------------------
これを、PERSONAL.XLSに書けば動くかなー、と思って気軽にやり始めたのですが、
甘くなかったです・・・。

いろいろググったり、詳しい人に聞いてみたりしたら、どうもクラスなるものを
使わないと解決しなさそうな感じなんで、今必死こいてクラスの勉強しとります。

359 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 20:59:45 ]
VBA使いはひどいなwwww
根本理解してないというか理解しようとしていないwwww
動けばいいやーっていうスタンスでやってきたからそうなる



360 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 21:33:20 ]
> 根本理解してないというか
やっぱそうかー。なんか「VBA使い」に恥をかかせたようでスマン…。
たぶん、俺がひどいだけだと思うんだ。

361 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 04:05:16 ]
準マスター文書として使えるのがVBA/OLE未使用文書
準々マスター文書として使えるのがVBA/OLE多用文書
半端に使ってるものは信頼性が一番低く、生ゴミ文書
扱いになる。

362 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 10:01:48 ]
ステータスバーを使わずに
メッセージボックスやユーザホームで

"処理中です・・・・ " & Count & "行"

と表示させながら裏で実行させる方法ってありますか?

例えばMsgBoxとかで表示させると、そこで止まってしまうんですが・・・

363 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 12:51:57 ]
>>361
ExcelアプリとExcelデータは区別したほうがいいってことね。

364 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 13:39:50 ]
>>362
msagent

365 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 14:07:46 ]
ユーザフォーム

366 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 14:44:10 ]
>364
ありがとうございます、やはりこの手の処理方法は
VBAのみで実現するわけじゃないんですね

ちょっと面白そうなので、VBS使ってその方向で検討してみようと思います

367 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 14:46:54 ]
VBSでやれることはVBAでもやれるぞ。
参照設定にあるはずだ。

368 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 15:51:55 ]
use form

369 名前:デフォルトの名無しさん [2008/04/22(火) 16:06:57 ]
引数で受け取った配列(arr)が1次元か2次元かを判定する方法で
今は

On Error Resume Next 'エラー出力を停止する
lng = UBound(arr, 2)
lngErr = Err.Number
On Error GoTo 0 'エラー出力を再開する

のようにUBound()関数を使用してエラー発生の有無で判定してるのですが
他に良い方法ないでしょうか。。





370 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 18:07:20 ]
>>369

エラーを意図的に起こして別の情報を得るコードは
Acess−VBAなど、DBという会社システムでは泣く子も黙る世界と因縁の深い汎用機大型機の
コードでは常套手段。
やはり一般的にはしないほうがいい。
特にAccessなどDBが絡むシステムでは、VBA使うだけでも領域侵犯とみなされやすい
ので注意。

371 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 19:37:09 ]
>>362
初心者の俺が解答するから間違ってたらごめんよ。
例えば、50件のデータを処理する場合はカウンタ変数を作っておいて、1件の処理終わる度にそれに1ずつ足していけばいいと思うよ。そして、「処理件数/全件数」をユーザーフォームに貼りつけたラベルに表示するのを繰り返す。
マスターの皆さん見当違いだったらご指摘をお願いします。

372 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 19:43:05 ]
>>371
忘れてた。
裏で処理するなら「Application.ScreenUpdating」を使って画面更新止めたり、EXCELを非表示にした方がスマートかな。

373 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 19:58:37 ]
VBAであんまり凝ったことをやろうとしない方がいいと思うがな
作り捨てアプリ作成言語として割り切って使った方が前向きかも

374 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:25:26 ]
昔は無茶ばかりしたなあ

375 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:05:11 ]
>>374
kwsk

376 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 00:29:53 ]
バカクライアントが作ったエクセル表
きままにセル結合したり、色に意味持たしたり、2行結合のセルと2行間に罫線が無いセルに
それぞれ意味があったり、その行数が20行位まで別条件だったり、もう気が狂いそうです。
これをコンバートする為にまず整形しなければならず、1万行近い定期案件なのです。
凝った事をやるつもりはさらさらないが仕事だから仕方ないのです

377 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 01:19:56 ]
>>369
SDKに配列の要素があるかどうかの判定をするAPIがあったはず
名前忘れたけど

378 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 09:01:12 ]
>>369
配列の次数やレンジを引き数に積んで貰わないの?

379 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 09:12:15 ]
エラーで判定がいやなら、無難にIFかCaseでいいんじゃないの?



380 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 09:20:37 ]
>>376
工数出せばいいだろうに。

・お前のウンコシート使って無理矢理自動化すると1人月
・俺様が作ったスマートな表を使って自動化すれば0.5人月

両案出して上司に決済させろ。

381 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 15:14:59 ]
1愚人月
0.5賢人月

382 名前:デフォルトの名無しさん [2008/04/23(水) 23:59:01 ]
ActiveWorkbook.Pathで、自分のファイルの存在場所がわかりますが、
拡張子をxlsからxlt(テンプレート)に変えた場合、保存されていない
状態でOpenしますので、xltファイルの存在Pathが取得できません。

元となった、xltファイルの存在場所のPathを知る方法は無いでしょうか?

Googleでは、「ファイル→開く」だとPathは取得できるが、xltファイルを
ダブルクリックで開いた場合は裏技的なコードを書かないとダメと書いてあり
その人はそのコードを無くしてしまったとあったのですが…
www.keep-on.com/excelyou/2001lng4/200110/01100516.txt

383 名前:ゆうすず [2008/04/24(木) 13:05:32 ]
こんにちは、お邪魔します。

エクセル2003、ウィンドウズXPを使用しています。
マクロの記述は本で調べるなどして奮闘中ですが、
調べてもわららないことがあったので書き込みさせていただきます。
家のパソコンだと、なぜか[ツール]→[マクロ]とすすんで、
本来だったら[マクロの記録]となるのでしょうが、
ここが白抜きで実行できません。
セキュリティも下げてみたりしたのですが、どうにもわからなくて…。
なんだか初歩どころか一歩も進んでいないような質問で、大変恐縮なのですが、
どなたか教えていただけると助かります。
よろしくお願い致します。

ゆうすず

384 名前:デフォルトの名無しさん [2008/04/24(木) 13:08:08 ]
以下のような部分でプログラムが止まってしまいます。
どうも関数内の「"」がVBAの中での「"」と混同されているらしく、
うまく回避できません。いっそ「0」に置き換えてもいいのですが・・

Sub Finding_Nimo()

Range("A41").Formula = _
"=IF(ISERROR(VLOOKUP(B1,$DC$2:$DD$48,2,FALSE)=TRUE),"",(VLOOKUP(B1,$DC$2:$DD$48,2,FALSE)))"

End Sub

いい解決法は無いでしょうか?

385 名前:デフォルトの名無しさん [2008/04/24(木) 13:12:04 ]
>>383
セルがダブルクリックされた状態になっているのでは?
他のセルを選択しなおせばOKのはず

386 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 13:20:00 ]
>>384
この場合は、「""」は「""""」と記述すれば上手くいくと思うよ。

387 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 14:39:11 ]
>>386
おお、上手くいきました。ありがとうございます!

388 名前:デフォルトの名無しさん [2008/04/24(木) 21:24:09 ]
OS:XP Excel2003
共有フォルダにあるファイルを開きたいのですが、
どのように書けば共有フォルダを指し示すのでしょうか?
例えばCドラにあるファイルなら「C:\ファイル名」
と書きますよね。


389 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 21:33:03 ]
\\共有名\hoge



390 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 21:41:21 ]
ブー
詳しくはWindows板で聞く事
スレ違いというか板違い。
板違いの質問への回答はご遠慮下さい。

391 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 21:43:26 ]

了簡が狭いとはこの事を言うんだね。

392 名前:389 mailto:sage [2008/04/24(木) 21:47:13 ]
板違いでしたか失礼しました。

393 名前:デフォルトの名無しさん [2008/04/24(木) 21:58:49 ]
エクセルの質問じゃないのか?
知らんけど

394 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 23:49:51 ]
>>390
>>388はEXCELでVBAを使用して開く場合はどうしたらいいのか聞きたいんだと思う。

395 名前:388 mailto:sage [2008/04/25(金) 01:05:42 ]
>>394 その通りです。
VBAで共有フォルダのファイルを開くコードを
書こうと思ったのですが、どう書けばいいのか
わからず困っていました。
適当にググったのですが答えは見つかりませんでした。

396 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 01:14:29 ]
>>388
で答えはわかったの?
共有フォルダー
コンピュータ名=EXCELの
共有ディレクトリVBAの
サブフォルダーXLSの
ブックtest.xlsを開くコードは?

397 名前:デフォルトの名無しさん [2008/04/25(金) 12:44:00 ]
工数の累計を求めたいのですが、同じ計算式でも
EXCELのセル上で計算したものと、VBA上で計算したものと
では結果が微妙に違います。
何故でしょうか?

398 名前:346 [2008/04/25(金) 13:48:29 ]
セルの書式設定のパターンで網掛けをやると文字の上に網かけるじゃないですか
VBAの力を駆使して文字の下に網かけれるようにできないですか?

399 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 01:07:28 ]
VBAなどでのExcelの操作は、
あくまで人間が操作してできることしかできないよ、それ以上でもそれ以下でもない。



400 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 01:54:20 ]
またアホが湧いた

401 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 14:29:11 ]
入門用の書籍で
やさしくわかるExcel関数・マクロ 改訂版
を買おうと思うんだけどどう?

402 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 10:03:45 ]
ポケモンキャラクター図鑑とかウルトラマン
怪獣図鑑みたいなものだと思って買う
コンビニで売ってるくらいのもので、実にコンビニエンス!
な本。ただし内容は覚えないほうがいいよ。

403 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 10:35:50 ]
>>402
じゃあおすすめ教えて下せえ
皆さんはどうやって覚えたの?_実習あるのみ?

404 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 13:25:29 ]
>>403
俺はインプレスのできる大事典で覚えた。

405 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 14:22:00 ]
>>404
おまえは俺か

俺もそれで覚えた。カラフルで見やすくおすすめ。取り組みやすい。

406 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 15:24:05 ]
>>402

ドラえもんのポケットの中の道具辞典だろ? マクロや関数は。
ドラえもんの道具辞典みたいなもんだよ。エクセル便利マクロ集ってのは。
(ちょっと使いすぎたり適用範囲間違えるとのび太みたいに災難に合う)
VBAがウルトラマンに出てくる怪獣みたいなもの。

407 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 17:32:05 ]
最近のだと
しっかり学ぶ! Excel VBA 短期集中講座 [VBAマクロ基礎] 編
がいーよ。


408 名前:デフォルトの名無しさん [2008/04/28(月) 11:34:36 ]
VBAforEXCEL 2003 sp1に関してなのですが、F8で一行ずつ実行しているときに、
Application.ScreenupdatingをFALSEにすると、なぜか(?)一行ごとに
画面の更新が行われ、非常にもたつきます。

これは、2003のみの仕様なのでしょうか。
あるいはサービスパック適用で改善されたりしますか。

よろしくお願いいたします。

409 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 12:36:50 ]
2003SP3 Application.Screenupdating = FalseでもF8で実行すると画面は更新されています
ただし、非常にもたつくという症状はありませんでした

いずれにしてもSP3は適用しておいた方がいいと思いますよ



410 名前:408 mailto:sage [2008/04/28(月) 12:46:17 ]
>>409
ありがとうございます.
ただ、不思議なことにUpdating = TRUEの記述が入っていると、
はやく実行されるんですよ。ちょうど意味が逆転する感じで・・。

411 名前:デフォルトの名無しさん [2008/04/28(月) 13:16:36 ]
スマン、ちょっと教えて欲しいんだが、数字を小さい順に並び替えるのってどうやるんだ?RANKにすりゃいいのか?

412 名前:デフォルトの名無しさん [2008/04/28(月) 13:30:05 ]
print文で正規表現を用いた出力をしたいのですが、
どのようにしたら良いでしょうか。
例:print "(tab)Hello"
(tab)の箇所にタブを入れたいと思います。
もしくは、正規表現を用いずに出力する方法はあるのでしょうか。

413 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 13:35:33 ]
>>412
vbTab

414 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 13:40:28 ]
www.nicovideo.jp/watch/sm2821781

415 名前:デフォルトの名無しさん [2008/04/28(月) 14:19:08 ]
>>411
配列のソートが出来ないのは不便。
シートに数字を広げて、昇順かけるしかないでしょ

416 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 14:26:05 ]
Sub 長さ4の配列データの並べ替え( A )

if(A(1)<A(2)AND(A(2)<A(3))AND(A(3)<A(4))then
return
end if
if( (A(2)<A(1))AND(A(1)<A(3))AND(A(3)<A(4))then

A(1)=A(2)
A(2)=A(1)

end if

あと14個似た構文が続く

End Sub


以前、会社のシートにこれがあった。
バグが出る度に書き直していった苦労の跡がにじんでた。
なんだかんだいって、結構偉大なコードだと思った。

417 名前:412 mailto:sage [2008/04/28(月) 14:26:47 ]
>>413
ありがとうございます。
解決しました。

418 名前:デフォルトの名無しさん [2008/04/28(月) 15:15:49 ]
>>415 サンクス。早速やってみる。

419 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 19:25:51 ]
>>416
笑えるなあ。




420 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 19:32:36 ]
>>416
A(1)=A(2)
A(2)=A(1)

この時点で両方A(2)

421 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 21:39:55 ]
俺はソートにはADO使っちゃうな






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

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

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