- 1 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 23:16:33 ]
- ExcelのVBAに関する質問スレです
前スレ pc11.2ch.net/test/read.cgi/tech/1212587819/ ★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 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。 ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。 ★6 わからなければとりあえず「マクロの記録」(Alt, T, M, R)
- 848 名前:845 mailto:sage [2008/11/13(木) 13:26:06 ]
- >>847
有難うございます 挿入処理は、 insertを使わない方法(Paste)は、定義されている名前がある場合面倒そうです 削除処理は、 ご指摘のシートコピーを戻す方式を実際の処理に組み込んでテストしてみます
- 849 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 17:21:48 ]
- >>848
名前か。それは厄介だ 挿入に insert 使ってコピー書き戻すと名前付き範囲の内容書き変わるし insert だけでも 2回目は遅くなるし 後は、編集時にシートコピーしたシートを使っといて、deactivate されたら シートごと削除とかかなあ。イベントあるからいろいろめんどくなるんだよな、、、
- 850 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 17:26:26 ]
- シートのコピーから戻す方式を試したら更に時間が掛かる様になってしまった
- 851 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 18:16:20 ]
- >>850
データ量や数式、書式設定その他によってかなり違うだろうね オレのはあくまで>>827の条件で試しただけだし
- 852 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 21:52:40 ]
- >>847の処理における名前付き範囲は、挿入時に
range("namedarea").offset(20000).name = "namedarea" コピーバックの後に .offset(-20000) で、わりと簡単に対応できた 画期的なやり方は見つからんね。構成とか見直すしかないかも、、、
- 853 名前:851 mailto:sage [2008/11/14(金) 00:13:24 ]
- とりあえず、A2:Z3000 をテキトーな数式で埋めて試して見たけど、
やっぱ>>847のが早かった。calculation 切れば数式なしの時とあんま変わんない とにかく insert (特に 2回目)が遅いんで、insert とコピーバックの組み合わせでは 効果ないかも
- 854 名前:デフォルトの名無しさん [2008/11/14(金) 21:41:28 ]
- はじめまして、こんばんは。
今日はじめて本屋にて VBA の存在を知りました。 初心者質問ですみません、例えば、、、これができるようになるとなにができるようになるのですか? 詳しいかた教えてください。
- 855 名前:デフォルトの名無しさん [2008/11/14(金) 22:05:58 ]
- >>854
例えば野球データベース 選手名を入力すればその選手のプロでの全成績が一覧表示されるとか インベーダーゲーム作ってる人もいるよ とにかくExcelをVBAプログラムで自在に操れるって事
- 856 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 19:22:40 ]
- >>854
業務で言うと、データベースをexcelに展開して、 色んなチェックプログラムを掛けて品質保証したりとか。 ワークシートで使える関数を作って会社内に配布したり。 excel上に検索エンジン作ってる人もいるし、まぁ、何でもあり。
- 857 名前:無職カス [2008/11/16(日) 02:50:07 ]
- みなさん、こんばんは、 >>854 です。
>>855 >>856 さん 返答ありがとうございます。かなり使える機能ですね。 最近アルバイトをやめました。時間はたっぷりありますのでそこそこ使えるレベルまでもっていきます。 これからVBAを勉強していきます。 多々質問すると思いますが、みなさんよろしくおねがいします。
- 858 名前:デフォルトの名無しさん [2008/11/16(日) 03:45:10 ]
- 下に全員の成績表があって、
そこから各部門のトップ5を上の小さい表に抽出したいんだけど、 ランクとは違う気がするし行き詰っています。 どなたかご教授願えますでしょうか?
- 859 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 05:08:38 ]
- officexpのマクロと関数の処理順(と思われる事項)で知恵を貸していただきたく書き込みいたします。
セルAの値によってセルBの値が変わるよう関数を設定しているの状況で、 セルBの書式が自身の値によって変わるようにマクロを組もうとしています。 (書式は4種類以上なので条件付き書式は使えません) worksheet_changeで書式変更を自動実行するようにしたのですが、 マクロを実行してみるとAの値を変えてもBの書式が変わりません(Bの値は通常通り変わります) その状況で、まったく関係ないセルCの値を変更するとBの書式が変わったので、 マクロ自体には問題はないようです。 おそらく、A変更→マクロ自動実行→関数でBの値変更、という内部処理があるために マクロによる変化が見られない状況であると思っています。 (違っているなら根本から考え直さないといけないかもしれませんが) このような構成の場合、関数による値の変更が反映された後で 書式変更などのマクロが実行されるようにすることはできないのでしょうか? ご教示お願い申し上げます。
- 860 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 10:11:55 ]
- Calculate
- 861 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 10:51:08 ]
- >>860
ご回答ありがとうございます。 5分前にcalculate使えばいいと気づいて、自己解決した旨書きにきたら 既にお答えくださっていたのですね。 初歩的な事でお手を煩わせてしまい、申し訳ございませんでした。
- 862 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 19:13:30 ]
- >>857
基礎を勉強するには独学でも全然問題ないけど、 プログラム未経験で、かつ仕事に就いてないとなると、 プログラムの基本的な事を理解するまでに半年か1年かはかかると思う。 んで、そこから先は明確な目標が無いと無理。 やれる事が多いんだけど、ぶっちゃけた話、特化したプログラムには敵わない。 例えば>>855でゲームの話が出てたけど、確かに作る事は出来る。 けど、VBAからAPI呼び出してるに過ぎないし、更に言えば タイムラインって概念がある&ドローツールのFlashなんかには到底及ばない。 ExcelVBAはあくまでExcelの処理系統のプログラムだと俺は考えてる。 Excel上での処理に関してはVBAがぶっちぎり。当然だけどね。 何か目標持った方が良いよ。
- 863 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 19:15:00 ]
- >>859
calculate使う理由が分からん・・・。 VBAで処理してるなら、VBAでBの値も弾き出せば良いんじゃないか?
- 864 名前:独り言(ちら裏) mailto:sage [2008/11/17(月) 01:24:05 ]
- というか、条件付き書式を複数設定(優先順位付)出来ないExcelの仕様に
問題ありかと... それがExcelのポリシーというのであれば、そういうアプリめいたものを Excelで作ることが間違いだったということになるか...
- 865 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 10:16:53 ]
- > 条件付き書式を複数設定(優先順位付)出来ないExcelの仕様に
> 問題ありかと... という意見が多いので、2007で設定数が 3 から 無制限 に、 優先順位も設定を書き直さずに変更できるようになった。
- 866 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 14:02:59 ]
- ということで、Excel2007以降の購入をお勧め
- 867 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 15:07:26 ]
- てゆーか、条件によって変化するセルの書式の種類は3つに留めておく
というのが無難かと
- 868 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 00:50:10 ]
- >>864
selection changeイベントで好きなだけ設定しろ。 おまいのVBAは飾りもんか?
- 869 名前:デフォルトの名無しさん [2008/11/18(火) 17:07:45 ]
- これのFSO(FileSystemObject)使ってテキストデータの読み込みすると文字化けします。
ttp://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110.html strRECをUTF-8→SJISにエンコードするには、どう記述したらいいですか?
|

|