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 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。 ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。
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使っちゃうな
422 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:03:39 ] >>411 ttp://officetanaka.net/excel/vba/tips/tips98.htm
423 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:16:06 ] >>411 配列のソートならググればサンプルがゴロゴロ転がってると思うが。 >>422 えれー遅いな。 つかえねー。
424 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 09:58:17 ] >>423 自前で作れば数倍早いが、こんだけ楽さしてもらってこのスピードなら十分使えるだろ 'Common Language Runtime Library を参照設定 Const NUM_MAX As Long = 65536 Dim DataList As mscorlib.ArrayList Dim i As Long Set DataList = New mscorlib.ArrayList For i = 1 To NUM_MAX DataList.Add Int(Rnd() * NUM_MAX) Next i Range("A1").Resize(NUM_MAX).Value = _ Application.Transpose(DataList.ToArray) DataList.Sort Range("B1").Resize(NUM_MAX).Value = _ Application.Transpose(DataList.ToArray) DataList.Reverse Range("C1").Resize(NUM_MAX).Value = _ Application.Transpose(DataList.ToArray) Set DataList = Nothing
425 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 14:52:25 ] ソート関数ぐらい自前でちゃっちゃと用意できないあたりが やっぱVBAスレって感じでいいね(ゲラプwww
426 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 15:04:17 ] 大きく出たな
427 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 15:17:03 ] >>425 こんな口ばっかりのヤツに限っていまだにVB6あたり使ってそうw
428 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 15:25:14 ] VB6は軽くていいぞ 業務アプリのGUIはアレで十分なんだがな
429 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 16:28:29 ] エクセル使っていながらソートを自作するはめになったのは何故か。 自問するべきだ。どこで間違えた?
430 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 18:40:42 ] 逆だ。配列の使いにくさはVBAが最強。 故に車輪の再発明ばっかやるハメになる
431 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:33:15 ] VBAでもStringBuilder使えるのね…
432 名前:デフォルトの名無しさん [2008/04/30(水) 09:35:33 ] エクセルVBAスレの割りに、配列をシートにペーストして 昇順後→再格納の手法が忘れられてないかい
433 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 09:52:52 ] >>432 オートフィルターのこと?
434 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 10:06:36 ] >>433 orz
435 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 10:12:30 ] >>432 質問者はそれを求めてるように思える そもそも配列でもなく、再格納の必要もなさそうな気がする >>424 これは便利 勉強になりました
436 名前:デフォルトの名無しさん [2008/04/30(水) 10:13:09 ] >>433 A ↓ Z このボタンを押すマクロ記録を何度やったことか。 しかも、ラベル行がないと、滅茶苦茶になるし。
437 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 10:35:45 ] >>436 それは使い方が悪い。
438 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 11:06:26 ] >>424 参照設定したらDataList.とピリオド打てばインテリセンスが効きそうなもんだが、効かないね。 SortやReverseやToArrayの他にどういうメソッドやプロパティがあるかおせーて。 オブジェクトブラウザでも出てこねー。
439 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 11:21:39 ] 必要な箇所だけCSVに転記(このマクロはVBAで自分で書いてすぐに捨てる) 外部プログラムでソートした別のCSV作って読み込む。これを元の場所に再格納 (このマクロもVBAで作ってすぐ捨てる) 外部プログラムは当然VB. VBS on WSHという手段もあるが、これは手軽だがそれほど 早くはない。 .NET FrameWork(MS無償提供)入れたWindowsならVBコンパイラ付いてるぞ。 インテリセンスとかそういう高機能なIDEじゃないとプログラム開発出来ないという のであればVB 2008なりなんなりGetしてInstall) CSV読み込んで配列に格納して、それをソートする処理はまぁちょっと勉強しなきゃ 辛いだろうな 兎に角Excelシートに見苦しい、一度しか使わないようなVBAコードは残さないこと が精神衛生上好ましい。
440 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 11:39:39 ] >>439 シートから不要不急のVBAコードは削除することは同意 誤動作された場合の被害が大きい。 ただそういった使用済みのコードは完全に捨ててしまうのも やはり問題。別の理由で、データ破損してしまい作り直さな ければならない場合とか、大騒ぎになるな。 テキストファイルに落としてオブジェクトとして 埋め込んでおくのがいいと思う。
441 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 12:22:20 ] >>439 何番へのレスなの?
442 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 13:31:27 ] >>439 それコード書く意味あんの?
443 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 14:13:23 ] >>442 ちょっと複雑な比較順序でソートしなければならない場合とかだと (ex 国語の点数が同じなら、数学と理科の重み4:3の平均で比較し、 それも同じなら、歴史と社会の重み2:3の平均で比較し ) やっぱりVBAコードに頼らざるを得ないよ。 手動操作で出来る場合も多いけど、ミスを疑われるから検証作業が要求されるので 結局、コードが残って再現もできるようにしといた場合のほうがずっと信頼される。 自分のだったら兎も角、共有シートとかだと、勝手にシートや列を行を増やしたり、 隠したりすることも出来ない場合が殆どだし、何かまとまった操作をする場合は やっぱりVBAを使うよ。 でもVBAを使ってちょっと荒くデータ操作とかすると古いバージョンのExcelだと落ちるは、 シートが何故か肥大かするわで、嫌う場所も多いね。 だから外部ファイルにデータだけ抜き出して、処理してから書き戻すってことを 要請されることが多い。 シートのデータは、手作業だと抜き出しにくいように工夫されてるから、外部ファイルに 書き出す作業もVBAを使う。
444 名前:デフォルトの名無しさん [2008/04/30(水) 14:14:19 ] >>441 俺もわからんかった・・
445 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 14:19:40 ] つまり、元々のシートの設計が悪いとVBAに頼った糞運用せざるを得なくなるってことですね。
446 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 14:27:04 ] そうExcelの設計が悪すぎなのかもな
447 名前:デフォルトの名無しさん [2008/04/30(水) 14:40:00 ] csvの仕様も死ねる
448 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:27:18 ] >>443 > 結局、コードが残って再現もできるようにしといた場合のほうがずっと信頼される。 コードはすぐ捨てるんじゃなかったの? >>439 とは別人?
449 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:33:10 ] >>438 ttp://msdn.microsoft.com/ja-jp/library/system.collections.arraylist_members(VS.80).aspx
450 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 18:42:04 ] 最新バージョンはどうかしらないけど(できるの?) Excelは手動操作ログ記録とそのロールバックは保存できないからな。 使ったVBAをプリントアウトしてシートから削除して提出 したらVBAが作業ログと差分を兼ねることにもなる。 (自分と先方の作業前シートのバックアップ保持は当然)
451 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 18:57:56 ] 一般ユーザレベルのノウハウは、ソフトウェア板ででもやってちょ
452 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 19:23:19 ] Excel&VBAくらい「一般人」向けの組み合わせはないと思うけどな
453 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 20:21:46 ] ぷ、ぷりんとあうとしてさくじょ・・・
454 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 20:39:40 ] >>443 その例題はVBAいらない。 VBAでやりたいなら止めはしないが。
455 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:09:38 ] >>454 それならばやり方教えて下さい。というかVBA無しの手作業でやりなさい。 報酬は一切ありませんが。 生徒ID/国語得点/数学得点/理科得点/歴史得点/社会得点 の表がシートA1からF9999まで埋まっています。 RANGE A1:F9999以外のセルは一切改変禁止です。 シートを複製したりすることも禁止です。 (後で削除したりクリアすることも禁止です。監視員が 後ろで貴方に不正操作がないか監視していると想定して下さい。) この条件で、ソート order by (5*国語得点+4*数学得点)/9, (4*数学得点+3*理科得点)/7, (3*理科得点+2*歴史得点)/5, (5*歴史得点+3*社会得点)/8, (4*社会得点+5*国語得点)/9 ASC でお願いします。
456 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:11:41 ] スルーよろ
457 名前:438 mailto:sage [2008/04/30(水) 21:12:31 ] >>449 トンクス
458 名前:455 mailto:sage [2008/04/30(水) 21:20:25 ] 追加条件 デュアルモニターで、立ち上がってるプロセスやクリップボードまで 監視されており、セルを別のブックに貼付けてなんて姑息な技は 使えないということは言う迄もありません。Lotus-123,OpenOfficeを使うこと 等も無理でしょう。 さて、この状況でどうやってソートするのか期待してます。
459 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:21:00 ] >>455 君はなぜExcel使ってるの?
460 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:25:59 ] >>458 別のブックに貼り付けてソートしてから元のシートに貼りなおすのはありだなあ。 姑息とは思わない。 なんでそれをやらないことにこだわってるの?
461 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:30:45 ] シート追加して、元シートのA1でshift+*して、コピペして、適当な計算式追加してソートして元に戻して、シート削除。
462 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:31:47 ] s/shift+*/ctrl+*/
463 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:34:14 ] >>455 それ、他Bookか追加シートで処理するより、CSVに吐き出して外部ソートするコード書く方が大変だろw いちいち>>439 みたいなことしてんの?馬鹿じゃね?
464 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:35:20 ] >>455 にとってExcelは不便な道具なんだね。 デュアルモニターで監視されててソート機能すら使ってはいけない。 かわいそう。
465 名前:455 mailto:sage [2008/04/30(水) 21:39:55 ] クリップボードにコピーしたらその内容を直ちに削除する常駐ソフト(サービス)が 立ち上がっているような職場です! 好きでやっているわきゃないでしょ
466 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:42:24 ] 死ねよpgr
467 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:42:36 ] >>465 じゃあセルの内容を別シートにコピペするVBA作ったら? 素人が変なソート組むよりそのほうがよっぽどいいよ。
468 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:48:01 ] これからも後出しの条件がどんどん出るよ お楽しみに!
469 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:49:05 ] これはひどい(この板で今日二回目)
470 名前:455 mailto:sage [2008/04/30(水) 21:50:00 ] ま、ガンバって下さい。期待してます。
471 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:50:09 ] >>455 order byとかASCとか生意気なやつだ。 イラっとする。
472 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:50:58 ] うぁぁぁぁぁ
473 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:52:08 ] ちょっと待て、「歴史」と「社会」でわかれてるが、「社会」ってなんだよ?w
474 名前:455 mailto:sage [2008/04/30(水) 21:56:00 ] ちんちん
475 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:56:35 ] でもVBAでCSV書き出すのは可って意味わかんない 馬鹿じゃないの
476 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:58:29 ] どっかの学校か塾の先生かなんか? レベル低すぎーw
477 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 22:00:26 ] >>443 が何がバカかというと,複雑な条件のソートには独自のアルゴリズムが 必要とか思ってるところ。
478 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 22:01:04 ] なんか可哀想だな 生徒が
479 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 22:12:43 ] 何の先生だろ。 数学じゃないことを願う。
480 名前:デフォルトの名無しさん [2008/04/30(水) 22:47:11 ] プログラミングだろ んでなんでそこまで先生がむきになってるのか、更におまいらが叩いてるのかがわからんよ おまいらの脳内モジュールにスルー判定のアルゴリズム追記しとけ んで、ソートコード出来た?
481 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 23:10:16 ] 必死すぎる先生のキャラがおもしろいからだよ。 VBA使ってることをなんとか正当化したいんだね。 VBAでソートを組むはめになるやつには何か大切なものが欠如している。
482 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 23:22:10 ] 結局話の流れは、>>455 のお題を手作業でやる方法を示せってことなの?
483 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 23:33:59 ] スレ違い
484 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 23:38:10 ] いや板違い
485 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 23:54:33 ] そんなに触っちゃダメなデータならソートして並べ替えちゃうのもダメなんじゃないかな。
486 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 00:15:11 ] >>424 ArrayListのToArrayでキャストするにはどうですればいいのでしょうか??
487 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 00:54:07 ] 流れが意味不明だ
488 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 01:11:30 ] >455 ファイルをデュプってODBCのExcelドライバをADO経由して開いて、 あとはそのままクエリ書けばいいじゃん。
489 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 01:16:15 ] 飽きた
490 名前:455 mailto:sage [2008/05/01(木) 01:16:53 ] >>488 大変よくできましたね。通信簿は5をあげましょう。 しかし内申書では「粗暴/凶悪。将来犯罪者になる可能性あり」を書いときます。
491 名前:455 ◆CSZ6G0yP9Q mailto:sage [2008/05/01(木) 01:23:05 ] これが最後のレスです。 >>474 は455ではありません。 以降の455のレスは別人になります。
492 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 01:29:53 ] 455がんがれよ じゃーの
493 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 01:35:17 ] 一般人にも分かるようなExcelだけで完結する操作を期待していた俺には 488はちょっと期待外れだった。お題は確かに満たしているけど……。
494 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 01:42:51 ] >>490 頭おかしいのか? VBAなし&クリップボード使用なしでどうやるかっつー話だろ? あ、そーか、10段階の5か。
495 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 01:58:58 ] 逃亡宣言した頭おかしい奴のお題とかどうでもいいよ
496 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 08:24:05 ] >>455 のお題を翻訳すると「Excelを使わずに成績表を並べ替えなさい。」ということだろう。
497 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 09:12:01 ] 秋葉原のソフマップに5万円落ちてますとか言い出しそうだ
498 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 15:24:15 ] ちょっと見ない間に随分賑わってたんだな
499 名前:デフォルトの名無しさん [2008/05/01(木) 16:28:20 ] ソート問題は暑いな
500 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 17:10:35 ] 500ゲト
501 名前:デフォルトの名無しさん [2008/05/01(木) 17:47:17 ] なかなかに香ばしいな 最大値を抜き出して、最小値から1づつ増加、判定合致したものから格納じゃだめなの? 場合に依っては死ぬほど重いけど
502 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 17:51:34 ] >>501 なんだそりゃ。 お前自身が香ばしすぎるぞ。
503 名前:デフォルトの名無しさん [2008/05/01(木) 17:53:35 ] バルブソートがいいな。
504 名前:デフォルトの名無しさん [2008/05/01(木) 17:59:48 ] だから、シートに展開しろと何度言ったら・・・(,,゚Д゚)
505 名前:デフォルトの名無しさん [2008/05/01(木) 18:02:21 ] 香ばしいって言うと怒る人いるよね。 これからはクリスピーって言ったらどうかな。
506 名前:デフォルトの名無しさん [2008/05/01(木) 18:04:29 ] >>505 クリスピーな奴へっけん
507 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 18:08:26 ] みなさん食いつきが良いですね
508 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:13:28 ] クイックソートが一番最適で、そんなこともわからないから 自前でちゃっちゃと用意することもできずに、こんな不毛なやり取りしてるあたりが やっぱVBAスレって感じでいいね(プゲラオプスwwwwwww
509 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:13:59 ] クイックソートが最適・・・(笑
510 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:26:03 ] クイックソートを笑って逆に自分の無知ぶりを晒けだしてることにすら気づいてないあたりが やっぱVBAスレって感じでいいね(ゴルバチョフwwwwwwwwww
511 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:27:14 ] C の qsort とか純粋なクイックソートでまず実装されてないだろwww
512 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:33:58 ] そもそもなんでエクセルでソート書いてんだよ。 それはさておき、ソートプログラムを売る人じゃないんならクイックソート を実装できる程度でもじゅうぶんだと思う。 >>501 のはさすがにひどい。
513 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:48:01 ] プゲラとか懐かすぃ
514 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:09:52 ] 510 は逃げ帰ったようだな
515 名前:デフォルトの名無しさん [2008/05/01(木) 20:12:31 ] クイックソートはスレ違い
516 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:40:17 ] すみません初心者ですがマクロの記録をやってるんですが、おもしろいですね
517 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:55:54 ] >>516 VBAの正しい楽しみ方だね。 ここの先輩たちのようなソート作るようなバカにはならないでね。
518 名前:デフォルトの名無しさん [2008/05/01(木) 21:37:32 ] dim a as integer で、空白セルの値が代入されたとき if a="" then では型不一致となるのをどう書いたらいいですか?
519 名前:デフォルトの名無しさん [2008/05/01(木) 21:39:30 ] バルブソートが一番だよ。
520 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:48:16 ] Excelの並べ替えの機能を使ってあげろよ。
521 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:30:49 ] >>516 それがVBAの自慢できるところだと思う 初心者に優しい
522 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:42:36 ] >>518 dim a as variant
523 名前:デフォルトの名無しさん [2008/05/01(木) 23:09:36 ] >>518 あとは格納の段階で型不一致を監視して弾く くりすぴーな501ですがクイックソートってなんですかわかりません〉〈 直訳するとはやぶさの剣かなにかで 先生教えて〉〈
524 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:12:09 ] 並び替えアルゴリズムの一名称 ネットにvisual basicのコードいっぱいあるよ
525 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:17:40 ] >>523 教養としてクイックソートくらいは知っておいたほうがいい。 勉強のためにVBAで組んでみるのもいいかもしれない。 でも仕事では使うなよ。VBAでソートなんてアホのやること。
526 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:21:44 ] >>525 VBAじゃなくても、自分でソートのコード書くことなんてほとんどないだろ
527 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:26:18 ] >>526 VBA使いはソートばかり書きたがるだろ?
528 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:28:47 ] まあソートプログラムなどネットで買い物するぐらい簡単なんだけど おじいちゃんとかは発狂するかもねw
529 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:34:22 ] >>528 簡単なんだから作っても誰もほめてくれないぞ。
530 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:40:04 ] だからネットで落とせると言ってるだろおじいちゃんw
531 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:44:39 ] >>530 そうか?伝わらなかったな。 「ネットで買い物する行為と同じくらい簡単な事だ」と言ってるのかと思ったよ。
532 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:48:24 ] >>531 発狂するなよ おじいちゃんには難しいかもしれんがw
533 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:50:12 ] >>532 そうか。そうか。 おすすめのソートはどれだね。
534 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:52:22 ] >>533 毎度馬鹿の一つ覚えの純粋クイックソートです。 要素数少なくても馬鹿の一つ覚えのようにクイックソートします。 要素数によって分岐するなんて発想はありません。
535 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:52:42 ] おすすめのソートってネットで特徴ひけるだろw そんなんで勝ち誇りたいなんて能無しで誰にも相手にされない 頑固じじいといっしょだねww
536 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:54:40 ] プログラマーに劣等感抱いてるのがいるな
537 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:55:42 ] おや?ソートをダウンロードする話じゃなかったのか?
538 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:56:06 ] 職場で嫌な事でもあったんだろ
539 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:58:20 ] >>527 ????
540 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:59:38 ] ソートをダウンロード((≧m≦)ぷっ! 身近の目上の人が 「並び替えをダウンロードしろ」 とか言ったらもう馬鹿にされまくりで 誰も相手にしない
541 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:00:11 ] なんだ、このスレ
542 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:01:11 ] 所詮VBAスレだしキチガイが湧いても仕方が無い
543 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:02:16 ] 最近の若い子とは話が通じないな。 まあいい。どんなアルゴリズムでもいいんだ。アルゴリズムの話をしたいんじゃない。 エクセルでソート自作してなんの意味あるんだということを言いたい。
544 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:05:58 ] 何を当たり前の事を自信たっぷりに言ってるんだ。 分かって遊ばれてるだけだというのに。
545 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:07:55 ] 難しい連中だな。
546 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:10:54 ] >>544 当たり前と言うがこのスレ見てると本気で心配なやつがちらほら…
547 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:13:13 ] >>418 を見る限り、既に、本流は解決している件
548 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:17:52 ] >>547 その後>>443 とか>>501 が登場したからなあ。
549 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 02:42:25 ] 会社とかで使うブックの場合やはり余り凝らないほうがいいと思う。 ちょっと格好わるくてもVBAでやったほうが無難かも。 情報セキュリティにうるさいDB屋の圧力があるからね。 あんまり凝ったことして得意になってると、Excelブックを一種の アーカイブファイルとして扱い主要処理はDBでやれという動きが加速してくる。 殆どのブックは実際物置としての価値しかないんだが、一部有効に使われた ブックには、核廃棄物のように再利用不能な割に流出すると有害なもの が含まれてる場合がある。やっかいなことにちょっと凝ったスマートな使い方 をすると何でもないデータからそういうのが生まれることがある。 虫が湧くって感じ。 だから最近は>>443 の例のように、凝った使い方を一切禁止するブックを 物置として扱うことが強制され、かつてはExcelで簡単に出来た処理もわざわざ 固く重く扱いにくいRDBの上でやれと強制される最近の傾向はそれが原因 してる。(単にDB屋の陰謀だという説もあるが)
550 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 02:46:40 ] ではちょっと凝った使い方をしたのを、「ムック」と呼ぶ事にしよう。
551 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 03:05:39 ] ExcelVBAでお手軽に出来ることをRDBに持っていくと、やたらと工数が掛かる。 外部に出すと、鼻クソみたいなデータ処理でも平気で3人月とか見積もり出てくるし。 それに、RDB使うなら業務の標準化から始めないと不毛になりがち。 ま、何ごともほどほどに。
552 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 07:00:35 ] >>549 凝らないほうがいいならなおさらVBAは使わないほうがいいじゃないか。 「セキュリティにうるさいからVBAが無難」←なぜ? 「流出すると有害なブックがある」←当たり前。 おまえ>>443 だろ。
553 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 07:02:18 ] >>551 >それに、RDB使うなら業務の標準化から始めないと不毛になりがち。 ますますRDB使いたくなるぞ。 おまえ>>443 だろ。
554 名前:デフォルトの名無しさん: [2008/05/02(金) 08:29:42 ] RDBってなんですか?
555 名前:デフォルトの名無しさん [2008/05/02(金) 09:03:58 ] レッドリボン軍
556 名前:デフォルトの名無しさん [2008/05/02(金) 09:06:47 ] RDBの概要でつ ttp://www5a.biglobe.ne.jp/~tacky/rdb/rdb-000-toppage.htm
557 名前:デフォルトの名無しさん [2008/05/02(金) 11:54:43 ] >>525 そっか ありがとう 配列内容をソートするのがうんたらって質問が出たからじゃない? 〉なぜ
558 名前:デフォルトの名無しさん [2008/05/02(金) 12:06:39 ] >>557 実は出てないらしい
559 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 13:29:32 ] でもぶっちゃけ、ちょっとVBA使えるようになるとちょっとしたモン作りたくなるよね? そういう時に手を出しがちなのがソート関係じゃない? ええ、その昔、俺も組みましたよ、クイックソート 懐かしい、結構みんな通る道なんじゃないの?(俺だけか)
560 名前:デフォルトの名無しさん [2008/05/02(金) 13:49:54 ] アメリカじゃ馬鹿なことやって、みんなに迷惑かけるやつに限って成功したりするもんな。
561 名前:デフォルトの名無しさん [2008/05/02(金) 14:23:15 ] そうそう、派手なフォーム作ったりな
562 名前:デフォルトの名無しさん [2008/05/02(金) 15:11:05 ] なんかやりたい気持ちはわかるんよ。 派遣で就いた職場で社員から、手作業でデータを加工する仕事をまかされて、あまりの能率の悪さと面倒くささで しかもミスると怒られるからVBA使って一発で加工するマクロ作ったらなぜか気味悪がられるようになった。 それからというもの、プリンタが止まったり、PCに何かエラーがあると全部俺が疑われるようになった。
563 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 15:31:07 ] >>549 Excelブックが物置? やっぱり455の言う事は意味がわからんな
564 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 16:07:09 ] >>562 そんな会社止めちまえ
565 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 17:00:44 ] >>549 そんな会社止めちまえ
566 名前:デフォルトの名無しさん [2008/05/02(金) 17:05:34 ] >>562 俺もその経験あるな・・・
567 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 17:06:34 ] >>564 いや、あまりにも周りが無知過ぎていつか自分にもチャンスがあるんじゃないかと思って辞めれない・・。 もう少しレベルの高いとこだと使い物にならない実力だし。 そんな態度だから苛められるんだろうなぁ。
568 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 17:38:23 ] ニュータイプを恐れる者たちの気持ちがわかっただろう
569 名前:デフォルトの名無しさん [2008/05/02(金) 17:58:12 ] 人をモルモットみたいに……
570 名前:デフォルトの名無しさん [2008/05/02(金) 18:23:09 ] ついにねんがんのアイスソートをてにいれたぞ
571 名前:デフォルトの名無しさん [2008/05/02(金) 18:26:31 ] どう考えても手作業の方が早いのに、 「マクロでやれ、VBAでやれ、そうしたらスグできるだろ?○○分後までに終わらせろ」 って、何も作業の中身を見ずに、マクロ・VBAを使えば どんな作業でもスグに終わると信じ込んでいる上司に 困ったことはあったな。
572 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 18:27:05 ] 職場によるだろ。同じ派遣でも。 >>562 の職場は、多分シートのミス入力チェックする担当者の仕事が無くなって 立場無くなるから顰蹙を買っただけだと思う。 一般的にはシートに妙な参照や糞数式とか条件付き書式とか使ったトリッキーな シート作るほうが顰蹙を買い易い。 VBAのコード(特に日本語だと喜ばれる)置いておく(組込んだままには しないでテキストに落として、ブックに埋め込む)ほうが喜ばれる。
573 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 18:35:12 ] >>572 >VBAのコード(特に日本語だと喜ばれる)置いておく(組込んだままには >しないでテキストに落として、ブックに埋め込む)ほうが喜ばれる。 なんとなくコードっぽい日本語。
574 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 18:47:06 ] >>573 毎回コードをエディタにコピーしてから実行するの? なんかめんどくさそうなんだけど。 どんな処理するVBAなん?
575 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 19:19:13 ] アドインじゃだめなん??
576 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 19:21:56 ] mscorlib.SortedListって便利だな。
577 名前:デフォルトの名無しさん mailto:うそ [2008/05/02(金) 20:10:01 ] まぁ、パソコン販売の「ソーテック」の名前の由来が 「ソートテクニック」だからな。
578 名前:大邊創一 mailto:sage [2008/05/02(金) 20:17:17 ] ・・・
579 名前:デフォルトの名無しさん [2008/05/02(金) 22:12:33 ] またソートか じゃあ反対に、考えうる限りギリギリ使えるレベルの、最悪のソートコードだれか考えれ
580 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 22:56:01 ] ソートの話をするやつはそーっとしとこ。
581 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 23:34:50 ] >579 ボゴソートでもVBAで実装する話?
582 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:52:00 ] ソートはもういいから次
583 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 01:44:48 ] ExcelやDBには本来ソートなんて概念はない。 以上基地外の発現でした。
584 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 02:16:42 ] >>580 その通り。卑猥な話だからね。
585 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 07:26:52 ] Excel2003しか持ってない(Accessを持ってない)俺が、 七万個の要素を昇順で並べ替えたい時にはどうすればいいですか?
586 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 07:46:31 ] Accessを買う
587 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 07:55:37 ] Excel2007を買う
588 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 07:58:51 ] 手作業でやる
589 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 08:22:41 ] >>585 その七万個の要素はどんな状態にあるの? csvなりのフォーマットに落ちているなら、sortすればいいだけだが。
590 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 08:29:03 ] >>589 kwsk
591 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 08:30:15 ] つ[man sort]
592 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 08:33:48 ] ちょっと疑問に思ってsort /?してみたら、固定幅ならsort.exeでも特定カラムをキーにソートできそうね。 unix系のsortにしても、テキストに落ちている必要はあるけど。
593 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 08:38:32 ] >>586 >>587 >>589 工エエェェ(´д`)ェェエエ工工 >>589 Sheet1とSheet2のA列〜F列×35000行と思って頂いて差し支えありません。
594 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 08:50:14 ] >>593 1シートずつ別々のcsvファイルに落として、二つのcsvファイルをまとめてsortでOK。 cygwin使うなり、Linuxをリモートで使うなりできるなら、出力を二つのcsvファイルに分けるところまでできる。 そうでないなら、それこそVBAで分割して読み込むって処かな。 いずれにしても、自分でソートを書く必要はないわけで。 どうしてもVBAでやるなら、各シートをそれぞれソートしてからマージソートかね。
595 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 09:31:01 ] テキストファイルの分割ごときでそんなご大層な
596 名前:デフォルトの名無しさん [2008/05/03(土) 10:53:09 ] 70000の配列に値を入れて、ネットでソートプログラムを 探して、並べ替えればいいのでは
597 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 12:07:29 ] >>594 サンクスコ 具体的にどういう手順でやればいいの? 聞いてばっかでゴメソ >>596 ソートのコードがいるんだね
598 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 12:11:22 ] Excel総合相談所 67 pc11.2ch.net/test/read.cgi/bsoft/1207792832/
599 名前:597 mailto:sage [2008/05/03(土) 12:20:03 ] 確かにスレ違いだね 助言してくれた皆さんありがとう あとは自分で何とかしてみるよ
600 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 12:30:22 ] >>562 せっかくVBAで仕事が早く終わるようになったのなら 仕事してるふりしてネットでも見てなさい
601 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 13:07:55 ] ちょっと時間がかかっていいなら・・・ 1. Sheet1, Sheet2をExcelの機能でソートする 2. Sheet1の10,000行目のソートキーを区切りにして、そこより上をSheet3に、下をSheet4にコピー 3. 2で使ったソートキーの場所を見つけ、そこより上をSheet3, 下をSheet4にコピーする 4. Sheet3, Sheet4をそれぞれExcelの機能でソートする Sheet1を10,000行と25,000行にまず分割するので、Sheet2の内容がまるごとどちらかに追加 されてもSheetの行あふれは起こらないというのがミソ。
602 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 13:08:46 ] あ、3は「Sheet2の中で」というのが抜けてた。
603 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:03:50 ] ArrayList使え。
604 名前:デフォルトの名無しさん [2008/05/03(土) 17:25:16 ] ご助言をいただきたいのですが、下記のようなマクロを作成しております。 1.幾つかボタンがあり、ボタンを押すとボタン名のシートが追加されます 作成されたシートに任意の数字を入力しそのシート内でそれが合計されます 2.次に集計用のシートに1で集計した数を貼り付けます。 3.これを追加されたシート分繰り返す。 という処理をするマクロを作成中なのですが、 ・追加されたシート分だけコピーするという条件(左から2番目のシートから処理をはじめ シートの右から2番目まで繰り返すというのを考えています と ・集計しコピーしたものを集計用シートの前回貼り付けたセルの横に貼りつけ をどのうように組めばいいのか思いつきません…。 ボタンの数は全部で7つで最高増えるのが7シートなので、 最初から7つのシートを作成しその集計を集計用のシートに貼りつけするのは できるのですが、そうすると使わないシートまで作成することとなるので出来ればそういう ムダを省きたいと思い上記のような事を考えました。 なにか改善策やヒント等ございましたらご教示の程お願い致します。
605 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 17:36:12 ] Dim i as integer For i = 2 to Worksheets.Count -1 Worksheets(i) に対して処理 Next こんな感じでどうでしょう
606 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:09:23 ] VBAとセル間リンクを駆使したExcellentなExcelの使い方をしたければ LANカード抜いたPCでやったほうがいい。USBメモリで外部データとの やりとりをする。 ネットやLANに繋がってる環境でVBAを使うとDLLアクセスとか 出来るんで、ネットにデータ流出してるとかしてないとかDB屋が騒ぎ だす。今やネットやLANに繋がってるPCでExcelやAccessでVBA使う時 は管理者許可がデフォになってるね。 ソートで騒いでいるようだが、DBもExcelもソートは実は余り得意じゃない。 ソートしないで済むようにデータを入れていくのがキホン
607 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:38:12 ] 自分の職場環境がデフォだと思うなよ
608 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:44:21 ] >>606 VBAかLANかと言われたらLANを選ぶ。 あとそれからエクセルとアクセスはソートが得意。これ豆知識な。
609 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:53:42 ] 本当に豆な知識だ
610 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:23:11 ] >>606 たかが成績表の並べ替えに面倒なやつだな。
611 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 20:34:47 ] >>606 >ソートで騒いでいるようだが、DBもExcelもソートは実は余り得意じゃない。 >ソートしないで済むようにデータを入れていくのがキホン ちよ、ちょっと。そんな馬鹿な。DBやExcelはツールであって得意じゃないのは使う側の能力がかなり影響するでしょ? ソートしなくいで澄むようにデータ入力って・・・そんな馬鹿な・・・
612 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 20:44:20 ] >>611 >>606 は>>443 だろう。 こいつは何かおかしい。病的だ。きっと優先順位の並べ替えが苦手なんだろうな。
613 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 21:17:13 ] >>606 ソートしなくて済むようにするにはデータをどうやっていれるんでつか?
614 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 21:23:33 ] 入力前にあらかじめデータをソートしておけばいいだろ
615 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 21:33:35 ] >>614 手作業でか?
616 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 21:42:41 ] なんか香ばしいやつがいるなぁ
617 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 21:58:41 ] >>606 お願いがあります、 頼むからコテつけて下さい
618 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:11:36 ] ヒント:NGワード DB屋
619 名前:デフォルトの名無しさん [2008/05/03(土) 22:16:25 ] なんか微妙に、最近のExcel総合相談所と、雰囲気が 似てるな。あっちは、707だが
620 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:41:14 ] Excel総合相談所で「ソートを自作するやつ」という笑い話を聞いたことがある。 あくまでもVBAでバカなことやろうとするやつへの戒めであって、本気でそんなことするやつはいないからこそ成立するギャグだった。
621 名前:デフォルトの名無しさん mailto:sagef [2008/05/03(土) 22:45:59 ] >>620 モンティパイソンだろそれは
622 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:14:31 ] >>604 本当にやりたいことはなんだろう。シートを出したり引っ込めたりすることなの?
623 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:31:36 ] 優先順位が簡単にわかる世界って お子ちゃまの世界のこと?
624 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:48:18 ] >>623 優先度が簡単にわかることとお子ちゃまとにどんな関係があるのやら。 やっぱり病気だな。
625 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 00:47:13 ] >>623 お子ちゃまの世界や極端な大人の世界では、優先順位は 簡単にわからないぞ。 2つのものを比較できるかどうかすら怪しいからね。 2つのものが比較出来るのが自明というそんじょそこらの 大人の世界は、もしかすると非常に幼稚な世界かもしれないぜ その幼稚園の主役がExcelやAccessだったりするから悲 しいものがあるが。
626 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 10:12:24 ] 愛こそが最優先
627 名前:604 mailto:sage [2008/05/04(日) 13:22:19 ] >605 ありがとうございます! データを会社においているので、試すのは明日しようと思いますがそれで上手く いけそうな気がします! セルのコピーについてはかなり強引ですが、 集計した1セルごと行数分(57行あるのですが・・・)コピーして貼り付け だと次のシートの集計をしたとき貼り付けも隣の行(セル)に上手く貼りついてくれたので とりあえず結果オーライです。 まだまだ覚え始めなのですが、このスレを見ながら少しずつ色んな考えを持てるようにしたいと思います。 ありがとうございます。
628 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 13:26:44 ] 複素数ですら大小比較できないってのに。 比較できるのが自明なものなんて限られてるわ。
629 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 14:54:28 ] >>628 ベクトルは大小比較できないと思ってる?
630 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 15:56:14 ] >>629 グローバルには標準化できないだけで、恣意的に決めればローカルには定義できるだろ? 大小関係の比較が難しいというのは、次のようなソート問題 大人n人子供m人のM個の家族がある。(当然家族ごとにn,mは異なる) それぞれ別のM個のホテルに泊まるとする。 それらのホテルは、一般的に大人、子供の宿泊料金が別(常に半額というわけでもない) シート1の各行にはホテル毎の料金表(大人・子供) シート2の各行には家族の大人・子供人数があるとする。 シート1の1行に記載されてるホテルにシート2の1行の家族が泊まるとする。 シート2の行を並べ替えて、宿泊料金の総和が最も安くなるようにソートしろ というような問題 これはエクセルだろうがDBだろうが難しい。ソートの専門家向けの問題。 「車輪の再発明」なんて、小馬鹿にした慣用表現は忘れろ
631 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 17:12:51 ] 恣意の意味が分かってない件
632 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 17:18:45 ] 普通それを「ソート」とは言わない件
633 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 17:19:36 ] 反恣意的に決めてほしいものですな
634 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 17:36:34 ] >>630 のソートって難しいの? 超簡単に見えるけど?
635 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 17:44:43 ] >>443 >>455 >>549 >>606 >>630
636 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 19:02:30 ] >>634 だよなあ。VBAなんぞまったく使わずに集計&ソート可能。 ソートの専門家向けの問題だって。おもしろすぎる。車輪の再発明の現場を目撃したよ。
637 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 19:26:54 ] >>630 ベクトルをグローバルに標準化はできないけど、恣意的に決めればローカルには定義できる。 つまり大小比較できるの?できないの?もっと詳しく説明してほしいな。
638 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 19:29:24 ] おまいらもう許してやれよ
639 名前:デフォルトの名無しさん [2008/05/04(日) 19:33:43 ] 車輪の再発明と聞いて、すっとんできますた。
640 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 20:46:50 ] 負け惜しみも沸いてきたみたいんだな(ワクワク
641 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 21:01:56 ] ローカル = 丹沢周辺
642 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:12:30 ] >>628 複素数の並べ替えすらできないバカがVBAでどんなことやってんだよ。笑わせんな。
643 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:44:25 ] 思いっきり馬鹿にされそうだが>>630 をVBAなしでやる方法が分からない・・・ 集計はともかく、順列組み合わせをシートに吐き出す部分だけはVBA使わないと苦しくないか? 試しに6家族でやってみたが720通り(6の階乗)の組み合わせをVBAで実際に書かせないと 俺の腕では最小値が見つけられない_| ̄|〇 9家族以上になったら1シートにおさまらないし VBAばっかり使っててExcelの基本機能に無知なせいかもしれんが 誰か答えプリーズ!
644 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:55:32 ] 総和がなんでソートで安くなるんだ
645 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 00:00:06 ] >>643 VBAばかり使っていると壁にぶつかるよ。一度離れて基礎的な勉強をしてほしいな。 組み合わせ最適化問題は難問で昔からいろいろ研究されています。ソルバー機能について調べてみて。
646 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 00:04:35 ] >>644 組み合わせ最適化問題は地獄の1丁目でつ.入門は慎重に.
647 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 00:19:05 ] ( ´_ゝ`) ふーん・・・そうかい
648 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 00:58:07 ] >>644 例えば大人が10人子供が1人の家族Xと 大人が1人、子供が10人の家族Yが居たとする。 Aホテルでは大人料金は10000円、子供料金は2000円 Bホテルでは大人料金は5000円、子供料金は3000円とする。 XがAに泊まりYがBに泊まる場合→102000+35000=137000円 XがBに泊まりYがAに泊まる場合→53000+30000=83000円 泊まらせ方によって結構差が出るだろ?
649 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 01:02:25 ] あー・・・ という事は、それぞれの家族がどのホテルに泊まれば 一番安いかってことかね。
650 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 01:20:27 ] ソルバーかなーとおもったけど、親子の数がセットで移動させないと いけない、という制約をどう実装すればいいのか思いつかない
651 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 01:35:24 ] 答えは複数ある可能性あり。Mが大きいと、答えが異常に多かったりする。念のため。
652 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 02:17:12 ] てか、勝手に家族離散させるな
653 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:29:12 ] 組み合わせ最適化はおもしろい問題だけど、Excel使ってる人が現実に解かなければならない場面はほとんどないだろう。 ホテル選びの例題だって実際にはあり得ない人工的な状況設定だし。
654 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:37:51 ] そしていざ解かなければならないとしても規模が小さければソルバーで解けてしまう。 それじゃソルバーで解けない場合はどうするのか? VBAで組むのだろうか? >>630 はどうするつもり?
655 名前:デフォルトの名無しさん [2008/05/05(月) 15:05:10 ] >>652 ふいた
656 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 15:59:27 ] >>653 >Excel使ってる人が現実に解かなければならない場面はほとんどないだろう。 その考え方は殆どExcelをExcelとして使っていないから出てくる考え方だな まぁいい。本来Excelなどをまともに使いこなせるのは200年以上の人生経験(☆比喩) が必要な世界だからな。 Excelは RDBというリアルタイム志向でアブソリュートな情報の作成ツール を補佐するツールとして使えばいい。 >>630 の問題で言えば、 最小コストと最大コストの推測、コストの分布の概略を掴む。(これを完全にやるのは まぁ無理だろう) これにより価格体系や家族構成に問題があるかないかを推測し、交渉する材料とかに するわけだ。 価格体系や家族構成の分布が悪いと、家族間や家族対ホテルで殺し合いが発生して 双方共に絶滅する可能性すらあるからな。 双方を双方の価値観を厳格に固執する態度じゃリアルタイムには問題は解決しないという 前提に立つのが賢い。
657 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 16:21:20 ] >>656 例えば客の家族構成に問題がある場合はどのような解決手段がある?
658 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 16:34:31 ] >>656 君が組み合わせ最適化問題に興味を持っているのはわかった。 そして今の今までそれを専門家向けのソートと呼んでいたこともわかった。
659 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 16:37:43 ] パソコンなんだから全通り計算させたらしまいだろ
660 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 16:43:37 ] >>439 >>443 >>455 >>549 >>606 >>630 >>656
661 名前:デフォルトの名無しさん [2008/05/05(月) 17:22:14 ] >>656 >最小コストと最大コストの推測、コストの分布の概略を掴む。 最適化手法からそのような結果は出てこない。
662 名前:デフォルトの名無しさん [2008/05/05(月) 17:24:43 ] >>659 基本的にはその通りなんだが、けっこう大変なんだぞ。
663 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 17:43:23 ] >>658 組み合わせ最適化問題はどこにでも付きまとう問題で >>630 のような問題は、その一つの例 興味を持たないで済ませられる人は余り居ない。 抽象化したら同じになるけど、問題が余りに広範なんで、 問題毎に使える手法に制限に色々とバリエーションが 出てくるので、問題毎に専門分野を作ってる 抽象化すれば>>630 に類する問題をまともに扱っている 人はその道の専門家でいいんじゃないの? そもそも一般人と専門家って両立する概念なんだから。
664 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 17:51:15 ] >>630 と似たような感じの問題で、数理計画とか線形計画、GAの専門家なら聞いたことあるが、 ソートの専門家ってのは聞いたことないな。
665 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 17:52:19 ] >>663 組み合わせ最適化問題を解くことは非常に有益だし、興味ももっています。 しかし考えてみてください。>>630 書いてるやつは>>443 なんですよ。
666 名前:側近中の側近 ◆0351148456 [2008/05/05(月) 18:08:01 ] (っ´▽`)っ テーブルを作って、その直積(デカルト積)を求めて、 ソートすればいいのでは? とレスをあまり読まずに言ってみましたが何か?
667 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 18:10:05 ] >>666 もう少しじっくり読んでくれ。 とりあえず>>443 から順番に。
668 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 18:17:55 ] >>439 >>443 >>455 >>549 >>606 >>630 >>656 とか なんか全部>>443 が書いたみたいに思ってる奴がいるみたいだが ここじゃ皆「デフォールトの名無しさん」だろ? >>439 !=455とか 書いたところで無意味だし... ねぇ>>667 =? >>439
669 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 18:23:38 ] >>668 >>667 だが>>439 ではないよ。 >>439 >>443 >>455 >>549 >>606 >>630 >>656 この中で>>439 だけは違うやつだと思う。 >>443 >>455 >>549 >>606 >>630 >>656 こいつらは同じやつだと思う。
670 名前:側近中の側近 ◆0351148456 [2008/05/05(月) 18:29:13 ] |▽`)っ 全て(っ´▽`)っの自作自演だったらどうする? ID無しの板っていいよね☆自作自演し放題で。 |彡☆
671 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 19:15:32 ] そんなセンスねーだろよ。
672 名前:側近中の側近 ◆0351148456 [2008/05/05(月) 19:41:29 ] >>671 (っ´▽`)っ ある! (っ´▽`)っは最高20人同時演出可能。 たまに自分のレスだと忘れて、そのレスにマジレスしてしまうことがある。 自分でも勘違いするぐらい、騙されるぐらい自演が美味い。。
673 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 19:50:21 ] 頭の壊れた奴が住み着いてすっかりスレが腐ってしまった
674 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 20:14:23 ] >>673 貴方をはじめ>All except >>443 etc の腐ってない新鮮な 頭脳が残っただけが救いだと思おうよ
675 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 20:21:53 ] >>674 めでたいやつだな。 複素数の並べ替えはできたのか?
676 名前:デフォルトの名無しさん [2008/05/05(月) 20:25:30 ] ソートの専門家 の検索結果 約 111,000 件中 1 - 10 件目 (0.14 秒)
677 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 20:32:45 ] >>674 >>630 ベクトルをグローバルに標準化はできないけど、恣意的に決めればローカルには定義できる。 つまり大小比較できるの?できないの?もっと詳しく説明してほしいな。
678 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 20:56:58 ] 674と630をどうしても結びつけたい頭の腐った人が居るようでつね
679 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:40:38 ] >>646 = >>678
680 名前:デフォルトの名無しさん [2008/05/05(月) 22:46:09 ] 教えてください。 ブックAに「計1-A」、「計1-B」、「計2-A」、「計2-B」、というシートがあって、 VBAで 「計1」と名をつけた新しいブックを作り、「計1-A」、「計1-B」をそこにコピーする、更に「計2」も同様に・・・ というのを一連の操作で行いたいのですが、 新しいブックの名前をどうつけてやったら良いのか分かりません。 sheets(Array("計1-A", "計1-B", ).CopyではただのBook1に保存されてしまいます。ぜひ名前をつけたいんですが、どうすればよいのでしょう ご教示願います
681 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:55:02 ] ファイル名とブック名を別にするのにはどうすればいいでしょうか?
682 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:02:02 ] >>676 "ソートの専門家"の検索結果 2 件中 1 - 2 件目 両方とも、このスレwww
683 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:12:27 ] saveas
684 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:17:39 ] >>682 ソートの専門家は種類が多過ぎてもはや専門家とはみなされてないだけだろ。 昔48種に大分類されたらしいが、その後もでるわでるわバリエーションの山。 分類プロジェクトは頓挫中。 ソートくらい奥深い世界は無いみたいだ。たかがソート、されどソート。
685 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:21:26 ] NSPを解くのも、ソートの専門家なのか?
686 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:22:05 ] ソートなんてクイックソート+選択ソートで実装すればまず困る事は無いわ。
687 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:22:56 ] しっー そーとしておけ
688 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:23:38 ] 場合によってはバケツソートを使えないようでは ソートの専門家とは言えない。
689 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:24:52 ] >>684 もはや何を言いたいのかよくわからんが、今や専門家と看做されてないなら、 「ソートの専門家」じゃないだろ。
690 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:26:10 ] >>688 え?アルゴリズムが違うと、結果も違うのか?
691 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:28:15 ] 「専門家」なら、バケットソートって言うだろ、JK
692 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:31:28 ] >>690 これはひどい
693 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:31:52 ] >>691 専門家はそんなくだらない事より本質を重要視する。
694 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:33:33 ] いいかげんにしとけよ
695 名前:デフォルトの名無しさん [2008/05/05(月) 23:51:17 ] 頭の中をソートしてくれ
696 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:57:40 ] それはやめといたほうがいい てか、上げるなよ
697 名前:デフォルトの名無しさん [2008/05/06(火) 00:14:14 ] 専門家以前に人としてバルブソートだろ。
698 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 00:24:42 ] このスレのレスを、くだらない順にソートせよ
699 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 00:31:46 ] 専門家がいるのなら本の一冊や二冊出してるだろ
700 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 01:18:08 ] ソートの味方くらいでいいんじゃね
701 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 01:34:47 ] ソートに味方も敵もあるかよ 番号が付いてる限りソートされていると感じる 脳みそにとってはな
702 名前:デフォルトの名無しさん [2008/05/06(火) 11:43:51 ] グランドシティ大宮イーストタワー グランドシティ大宮イーストタワー グランドシティ大宮イーストタワー グランドシティ大宮イーストタワー グランドシティ大宮イーストタワー グランドシティ大宮イーストタワー グランドシティ大宮イーストタワー グランドシティ大宮イーストタワー グランドシティ大宮イーストタワー
703 名前:デフォルトの名無しさん [2008/05/06(火) 13:31:48 ] >>698 >>443 >>455 >>549 >>606 >>630 >>656
704 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 14:30:12 ] 近未来と近過去 熱い場所だ 担当者ご苦労さん
705 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 19:16:16 ] ここはなんのスレ?
706 名前:デフォルトの名無しさん [2008/05/06(火) 20:39:34 ] ソートの専門家専用スレです。
707 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 21:37:06 ] その名はExceler
708 名前:デフォルトの名無しさん [2008/05/07(水) 02:11:55 ] なんで自演とかを気にするんだおまいら?
709 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 08:26:19 ] ところで>>630 よ。うまくソートできたか? わしはできたぞ。 正確に言うとソートじゃない。最適な組み合わせを求めたということ。
710 名前:708 mailto:sage [2008/05/07(水) 09:20:21 ] >>708 こういうことが起こりうるから
711 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 11:08:37 ] M=1000の時でホテル代の価格の組が全部異なり 家族構成も全部異なる場合で実例が出てくるまで 誰も信じないと思う。本当にソートされてるのか も示せないとな。
712 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 11:55:25 ] >>711 M=14まででお願いします。ソルバーの制限で200変数までしか扱えないから。 ただしM=14の時に現実的な時間で解けるかどうかわからないけど。 それからソートと呼ぶのはやめないか?
713 名前:デフォルトの名無しさん [2008/05/07(水) 12:40:47 ] 最適組み合わせの問題って、ノーベル賞クラスじゃなかったか?
714 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 12:49:53 ] >>713 このスレからノーベル賞受賞者が(・∀・)ワクワク
715 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 13:13:03 ] >>709 がウソつき扱いされているみたいだな。不思議な話だ。こんなのできて当たり前なのにね。 前から思ってたんだかこのスレに出入りしてるやつら中学生が多いだろ。 レベル低すぎて話にならん。せめて高校出てからデビューしろ。
716 名前:デフォルトの名無しさん [2008/05/07(水) 15:16:37 ] 中学生が高校生に、受験の答え教えてくれって頼む、そんな主旨のスレだからだと思う
717 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 15:22:28 ] '''八島 良太'''(やしま りょうた、[[1975年]][[11月8日]] - )は[[埼玉県]][[さいたま市]]出身の[[ウィキペディアン]]。 [[ウィキペディア]]でのアカウント名は[[User:Yassie]]、[[2ちゃんねる]]では◆sMt4YbtR06という[[トリップ]]を使用。 Nanassieというコテハンを使っていた時期もある。身長171cm、体重75kg。さいたま市[[大宮区]]在住。独身。 好きな歌手は[[サラ・マクラクラン]]、好きな女優は[[メグ・ライアン]]。 [[User:Aphaia]](本名・木津尚子)や[[User:Mikihisa]]や[[User:NiKe]]や[[User:掃除屋ケンちゃん]]との死闘で知られており、 現在は[[User:Haruno Akiha]]や[[User:WhiteWing]]をウィキペディアから追放すべく策動を続けている。 ==経歴== [[埼玉県立浦和高等学校]]を経て、[[国際基督教大学]][[教養学部]]社会科学科に入学。学部時代は [[オハイオ州立大学]]に交換留学し、[[経営学]]を専攻。オハイオ州立大学への編入を望み、願書はほぼ完成していたが アジア経済危機の煽りを受けて学費を工面できなくなり、相思相愛の恋人をアメリカに残したまま、[[1999年]]、日本に帰国。 のちに当時のことを振り返って「精神面は相当荒れてたね」と語った。[[2000年]]に国際基督教大学を卒業して 外資系企業に入社し、[[英語]]を使用した事務的な職務を担当。[[2004年]]、Excel2002VBAスタンダードに合格。 [[2005年]][[12月27日]]から[[ウィキペディア日本語版]]で北米の地理に関する記事を翻訳・投稿。今日に至る。 私生活では、失恋の傷を忘れるため、[[1999年]]から[[ダンスダンスレボリューション|DDR]]に熱中し、 新宿チルコポルトや大宮タイトーインに出没していたが、自惚れの強さと事大主義ゆえに諸方の反感を買い、 2000年頃には撤退を余儀なくされた。 {{people-stub}} {{DEFAULTSORT:やしま りようた}} [[Category:インターネットの人物]] [[Category:埼玉県出身の人物]] [[Category:デブ]] [[Category:日本のダンサー]] [[Category:1975年生]]
718 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 16:16:48 ] 14*14=196 15*15=225 >200 つまりLPですね。よくできました。
719 名前:麻雀を作りたい mailto:sage [2008/05/07(水) 17:48:28 ] OS:winXP excel2000 VBA実行中に、ユーザにいったん制御をもどして、シート上の特定範囲のセルをクリック。 そのクリックをトリガーに処理再開。 というような事をしたいのですが、どうすれば実現できるかわかりません。 良い案やヒントないでしょうか・・?
720 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 18:02:20 ] セルに対しては通常のクリックは検出できないと思うので、右クリックかダブルクリックのイベントを検出する どうしてもクリックがよい場合はクリックイベントを検出できるもの(ボタンやシェイプ)を追加する
721 名前:麻雀を作りたい mailto:sage [2008/05/07(水) 18:18:07 ] >>720 コメントありがとうございます。 BeforeDoubleClick SelectionChange とかを使えば良いのかなあとは思ってました。 引っかかってるのは、「VBA実行中に、ユーザにいったん制御をもどして」のところなんです。 中断前の変数の状態を保持したまま、いちどユーザに制御を戻して、シート上のセルを(ダブルor右)クリックでVBA再開。 つまり @自分の番になったら一枚ツモってきて Aいらいない牌を手牌の中から一枚選択して(シート上のセルをクリックして)、 Bすてる。 ってことをしたいんですね。 @まではVBAで処理して、Aの動作はシート上のセルをクリックすることで選択して、 BからはVBAにまた処理を戻す。 ・・・自分の実力じゃ無理かな・・・orz
722 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 18:40:04 ] >>721 セルを使わずに、全部ボタンをはっつけてしまったほうが楽なんで内科医?
723 名前:デフォルトの名無しさん [2008/05/07(水) 18:51:17 ] フォームとボタン使えば?
724 名前:麻雀を作りたい mailto:sage [2008/05/07(水) 19:20:52 ] そーですね・・。 cell_雀みたいなの作りたかったですが、あきらめようかな。
725 名前:デフォルトの名無しさん [2008/05/07(水) 20:39:11 ] フォームを作成してデバッグ作業をすると、エラーが出たときにコードが表示されずに フォーム画面が出るため、どこの行でエラーが起きてるのかわかりません。 解決方法ご教授願います
726 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 21:32:21 ] ところで>>630 はホテル料金の計算できたのか? >>656 >その考え方は殆どExcelをExcelとして使っていないから出てくる考え方だな なんていうくらいだから当然できたんだろうな。
727 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 22:04:47 ] >>719 こんなのじゃだめ? Do While Len(ActiveCell.Value) = 0 DoEvents Loop
728 名前:デフォルトの名無しさん [2008/05/07(水) 23:44:06 ] Excelツールのテストを自動化したいと考えています。 別Bookのフォーム上のテキストボックスの値を取得する ことはできますか? ツール側に関数を作ればできることはわかったのですが、 できればツール側に修正を入れたくないです。 ヒントお願いします。
729 名前:デフォルトの名無しさん [2008/05/07(水) 23:56:17 ] エクセルツールのテストって一般的な言葉?
730 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 00:09:24 ] 「Excelで作成したツールのテストを自動化したい」だから俺は別に違和感ないけど・・・ んなことより、>>728 は無理じゃないのかなぁ? フォームをキャプチャ→画像解析→テキスト取得とか?ごめん、嘘・・・
731 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 00:29:24 ] >>728 >>729 エスパー&エクセル素人
732 名前:デフォルトの名無しさん [2008/05/08(木) 00:32:01 ] 728です。レスありがとうございます。 やっぱり無理なんですかね。 そもそも、MsgBoxとかもやっているので、どうやってOK押すかとか前途多難です。 みんな手でテストやってるのかな・・・。
733 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 03:08:30 ] >>732 Win32APIを使えば、OKボタンもAPIでクリックできるけど、より良い方法は、 テスト対象のメソッドでダイアログ入力待ちなどが起きないような設計にする。 とはいえ、どこかでMsgBoxを出さざるを得ないだろうから、そこはマニュアルテストとかかな。
734 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 07:57:19 ] >>728 の説明で回答できる人ってスゴイね 俺にはどっちがツールなのかすら分からないよ
735 名前:デフォルトの名無しさん [2008/05/08(木) 08:30:10 ] そんなに誉めるなよ
736 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 16:11:05 ] いや実際、配列とか定数とか何に使うの?とか思ってる俺からしたら紙だ。
737 名前:デフォルトの名無しさん [2008/05/09(金) 13:03:03 ] モジュールの自動削除って出来るもの?
738 名前:デフォルトの名無しさん [2008/05/09(金) 14:48:45 ] 自分は今セルをクリックしたら別のエリアに多行表示できるようにしたいと考えて。 例にすると セルをクリックしたら、そのセルについたコメント(7~8行ぐらい)の内容を A15に22R X 7C以上の範囲にそのコメント内容を載せる という物を作ろうとしてるのですが 全く、できず困ってます。 こういうのは可能でしょうか?
739 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 17:20:23 ] セルに表示されないデータを埋めこむってこと?ソートとかかかったらどうなるんだろ?ってかできるの?
740 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:57:46 ] >>737 出来る >>738 可能 >>739 「セルのコメント」だろ
741 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 22:52:31 ] ごめん、俺が今やりたいことを言ってしまった。で、できるの?3文字でいいからヒントください。
742 名前:デフォルトの名無しさん [2008/05/09(金) 23:37:18 ] >>741 でき れ
743 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 23:39:06 ] どっちだよ? >>737 ttp://www.cpearson.com/excel/vbe.aspx >>738 range.comment, range.notetext
744 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 23:58:10 ] 並べ替えた後、セルを特定することは普通可能 それはソート前にセル探すのとどう違うんだ と言うか、出来るように設定しておけばいいだけでわ
745 名前:デフォルトの名無しさん [2008/05/10(土) 08:30:40 ] マクロにパスワードつけて触れないようにしたい。 どうしたらいい?
746 名前:デフォルトの名無しさん [2008/05/10(土) 09:43:16 ] Function IsCommentCell(sAddress As String) As Boolean IsCommentCell = Len(Range(sAddress).NoteText) > 0 End Function Function GetFullCommentText(sRange As String) As String Dim sComment As String Dim iPos As Integer iPos = 1 While Range(sRange).NoteText(, iPos) <> "" sComment = sComment & Range(sRange).NoteText(, iPos) iPos = iPos + 255 Wend GetFullCommentText = sComment End Function 'コメント取得方法は分かったが 'それをA15に表示する方法がググレナイ… '例えば A1にあるコメントをクリックしたら(7行)A15以降にそのコメントが表示されて 'その後、B5にあるコメントをクリックしたら、A15に表示されたA1のコメントが消えてB5のコメントが表示できるようにしたい。 'どうしたら良いでしょうか?
747 名前:デフォルトの名無しさん [2008/05/10(土) 10:07:09 ] 連レス失礼 A1から12R X 11Cのどのセルをクリックしても そのセルについてるコメントを A15に表示させるようにしたいです。
748 名前:デフォルトの名無しさん [2008/05/10(土) 10:55:14 ] >>745 VBEditorで ツール→VBAProject-プロジェクトプロパティ →保護タブ →パスワードを入れる
749 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 11:23:54 ] >747 12R X 11C? Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Target.Comment Is Nothing Then Range("A15").Value = Target.Comment.Text End If End Sub ?
750 名前:デフォルトの名無しさん [2008/05/10(土) 11:44:56 ] >>749 できました! ありがとうございます
751 名前:デフォルトの名無しさん [2008/05/10(土) 11:50:35 ] あとは A15の縦の長さを 常時コメントと同じ高さにあわせるように応用するだけか・・・
752 名前:デフォルトの名無しさん [2008/05/10(土) 12:04:27 ] A15の高さ=コメントの行数x18ピクセルになるマクロを組み込むには…どうすればええやろ。
753 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 18:48:39 ] いい加減、マクロの記録に気づけよ
754 名前:デフォルトの名無しさん [2008/05/10(土) 23:53:59 ] ボタンのテキストをマクロで書き換える方法についての質問です。 フォームのボタンの場合は、 Dim s As Shape Set s = ActiveSheet.Shapes("Button 5") s.TextFrame.Characters.Text = "ほげほげ" のようにすれば書き換えられます。 では、コントロールのボタンはどのようにして書き換えればいいのでしょうか? 同じように書くと、s.TextFrame.Characters.Textの行を実行するときに、 オブジェクトは、このプロパティまたはメソッドをサポートしていません と叱られます。
755 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 01:33:18 ] EXCEL2003のVBAで、シートの再計算を強制的に実行するにはどうすれば良いでしょうか?
756 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 04:35:17 ] ・資金ゼロでも優秀な開発者は一千万円の特別賞あり、デモトレードなのに優勝したら三百万円の賞金 ●6月にマネージャパン、月刊アスキー、週刊アスキーの3誌が賞金総額2000万円の「シストレFXグランプリ」を開催 system-trading.jp/news/index.php?cID=3 [シストレFXグランプリとは] クリック証券が提供するFXのデモ取引環境を利用して、システムトレードにチャレンジできるFX取引のグランプリです。 お客様ご自身で作成したシステムトレードの機能を評価する「シストレソフト部門」とトレード収益を競う「トレード部門」の2部門構成となっております。 ●5月22日より登録受付開始、6月2日よりグランプリ開始の予定。賞金総額2000万円。 デモトレードの優勝者には賞金三百万円がプレゼントされます。 ▼トレード部門 初期資産500万円で、デモ取引のトレード収益を競っていただきます。 ●www.fx-gp.com/about/ ▼賞金総額 ■社長特別賞(シストレソフト買取価格) 10,000,000円 ●シストレソフト部門賞 1位300万円 2位100万円 3位50万円 ●トレード部門賞 1位300万円 2位100万円 3位50万円 ●前期MVP賞 50万円 ●後期MVP賞 50万円
757 名前:側近中の側近 ◆0351148456 [2008/05/11(日) 11:02:55 ] >>754 (っ´▽`)っ ActiveSheet.CommandButton1.Caption = "ddddd"
758 名前:側近中の側近 ◆0351148456 [2008/05/11(日) 11:04:56 ] >>755 (っ´▽`)っ Calculate メソッド 計算対象 指定例 すべてのブック Application.Calculate または Calculate 特定のワークシート Worksheets(1).Calculate 指定されたセル範囲 Worksheets(1).Rows(2).Calculate
759 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 12:11:02 ] >757 ありがとうございました。できました。 以下、俺様メモ。 VBAのオブジェクトブラウザを使って クラスSheetXのメンバをオブジェクト名(たとえばCommandButton1)で探すこと。 ボタンのクラスはCommandButton
760 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 19:04:23 ] >748 >→パスワードを入れる でけた。ありがと。
761 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 14:27:05 ] Dim StrData(1 To 13, 1 To 2) As Variant これってどういう意味ですか?
762 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 14:50:23 ] >>761 イメージ的にはA1:B13みたいな縦13*横2の二次元配列。 変数名からしてString型にした方がいいと思うが。
763 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 15:59:00 ] >>762 ありがとう、把握しました。 後、マクロを無効にしないとエディターで編集が出来ないんですが、これはどうすればいいんでしょう。 csvを読み込んで配置するマクロを編集してるのですが、無効にするとデバッグ出来ません。
764 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 19:29:24 ] 一週間以上たったが>>630 はできなかったみたいだな。DQNが消えてこのスレも健全化するだろう。
765 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 20:10:15 ] VBAで測定器の制御(GPIB)を行っています。 あるデータを取得する関数の戻り値がString限定なのですが、中身がバイナリ直のDoubleで どう変換するべきかつまっています。 全体のデータは #XXX{Data double 8byte}{Data double 8byte}{Data double 8byte}..... の様な形で {data}の部分は8byte double形式で書かれています。 最初に"#" その後にデータの数の桁数 その後ろがデータの数 その後は8byte Doubleの数が並んでいます。 例: #212{data}...({data}が12個) ^個数を表す数字が2桁 の意味 ^{data}が12個あると言う意味 関数はCall ibrd( ID as Int , buf as String , count as long ) にてメモリからデータを countのByte数だけbufに取り込める仕様です。 ibrd( id , buf , 1) '#の部分取得 ibrd( id , buf , 1) '桁数取得 ibrd( id , buf , N) '上記の桁数分だけ取得 for i = 1 to Num step 1 '上記の数分だけ{Data}を取得 ibrd( id , buf , 8) '8Byteづつ取得する next この時、8byteづつ取得すると 変数 buf には String 形式で 本来Doubleのバイナリ値がそのままつっこまれてしまいます。(ウォッチウィンドウで見ると空白など) 数字の1などが入っていればCdbl(buf)でいけるのでしょうが、 型がStringで中身のバイナリがDoubleになってる状況で、これをDoubleに直して数字を取得したいのですが 何か助言もらえないでしょうか?
766 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 21:00:48 ] RtlMoveMemoryとか使えばいいでね?
767 名前:デフォルトの名無しさん [2008/05/12(月) 22:04:34 ] 後はいちいち蒸し返すDQNが居るだけだな
768 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 01:36:36 ] >>764 甘いな
769 名前:デフォルトの名無しさん [2008/05/13(火) 08:28:32 ] 不正アクセスから、マクロ及びデータを守りたいのですが パスワードの不正解析されても、データ等を守る方法はない?
770 名前:デフォルトの名無しさん [2008/05/13(火) 12:27:06 ] 不正解析というか、バイナリエディタで、パスワード上書きされたら終わりだしな。
771 名前:デフォルトの名無しさん [2008/05/13(火) 12:34:14 ] 本体から読み込む形にして、不正処理があったらOSから終了させれ 不正アクセスと断定できるなら、偽装データを渡したり どこまで相手にするかにもよるけど、ある程度以上のクラッカには対策立てられぬ そもそもマクロ無効で覗かれたらエクセルじゃどうしようもないし、エクセルのパスは飛ばせる裏技あったような
772 名前:765 mailto:sage [2008/05/13(火) 18:42:38 ] >>766 遅くなりました。 情報ありがとうございます。 試してみます。
773 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 22:45:12 ] >>771 ttp://www.google.com/search?q=VBA+%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89&rls=com.microsoft:ja:IE-SearchBox&ie=UTF-8&oe=UTF-8&sourceid=ie7&rlz=1I7GGLR
774 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 02:04:38 ] >>769 できるよ。 以上。 ↓次どうぞ
775 名前:デフォルトの名無しさん [2008/05/14(水) 11:51:19 ] XP、EXCEL2003です。 シート上の図(Shape)を、すべて削除する方法を教えて下さい。 よろしくお願いします。
776 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 13:26:15 ] モジュールのインポートを一つずつやるのがめんどくさいんだけど、 これって、フォームとかと一緒にまとめられないの?
777 名前:番組の途中ですが名無しです mailto:sage [2008/05/14(水) 15:48:05 ] >>775 forループで↓をActiveSheet.Shapes.Count分回せばいいかも ActiveSheet.Shapes(i).Select Selection.Delete ※iはループカウンタ
778 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 15:53:29 ] ループの必要はないよ ActiveSheet.Shapes.Delete
779 名前:775 [2008/05/14(水) 18:14:41 ] >>777 ,778 レスありがとうございます。
780 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 19:09:02 ] >>778 ふーん、いろいろあんだねぇ
781 名前:デフォルトの名無しさん [2008/05/14(水) 22:20:07 ] VBAを学ぶのにオススメの書籍などはありますか? 目的は、ある外部のデーターベースから、 ブックを開いたときに、選択した情報を効率的に 集めてくるみたいなものをつくりたいのですが。 因みにプログラムの経験はVBAが2週間で、他の言語は知りません。
782 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 22:47:08 ] >>781 ごめん。まったく何を言ってるのかわからない。 みんなはわかるの?
783 名前:デフォルトの名無しさん [2008/05/14(水) 22:48:32 ] データベースとの連携を中心にしたものなら、例えば 仕事に役立つ Excel & Access データベース連携テクニック Softbank といったものがあるけど、 これはある程度VBAを知っている事が前提なんで、やはり最初に入門を中心に勉強してからの方が良いんじゃね?
784 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 22:52:55 ] >>781 ExcelのVBAなんか覚えるよりデータベースの方が役に立つだろう?
785 名前:781 [2008/05/14(水) 22:57:39 ] ソフトバンクからでてる初めてのVBAという本の内容は一応マスターしました。 >>783 さんの挙げてくださった書籍の姉妹本だと思います。 しかし、Dimが出てこなかったりして、結局出来るようになったことは セルに色をつけたり足し算したりシートの名前を変えたりといったレベルです。 もっとレベルの高いVBAを勉強したいです。 わかりにくくて申し訳ございません。
786 名前:デフォルトの名無しさん [2008/05/14(水) 23:01:30 ] >>784 仕事で大量のデーターを扱うので、データーベースはきちんと扱えるようになりたいです。 SQLとかを勉強したほうがいいのでしょうか? 仕事とは別にVBAを打てるようになって、ゲームとか作りたいです。 現時点のレベルは低すぎるわけなのですが・・・
787 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 23:09:09 ] >>786 仕事はデータベース VBAは趣味のゲームで
788 名前:781 [2008/05/14(水) 23:12:13 ] >>787 すいません、ド素人なのでよくわからないのですが データーベースという、VBAみたいなジャンルがあるのでしょうか? 周りにパソコンに詳しい人がいなくて困っています。 セクハラ酷いし。あぁ会社行きたくない・・・
789 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 23:14:35 ] >>788 自分でデーターベースからブックを開くと言ってたじゃないか。
790 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 23:25:06 ] visual basic6ぐらいのデータベース連携の本買って vbaに関してはエクセルのヘルプよく読め
791 名前:デフォルトの名無しさん [2008/05/14(水) 23:26:11 ] 無料のRDBが沢山有る現在でも、周囲に詳しい人間が居ない状況でデータベース勉強するのはしんどいぞーーーー
792 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 23:44:05 ] VBAでゲーム作る奴は変態
793 名前:781 mailto:sage [2008/05/14(水) 23:45:46 ] なるほど、自分がやるべきことがわかってきました。 親切に答えてくれた方々、ほんとうにありがとうございました。
794 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 23:48:05 ] >>792 しかしVBAの正しい利用方法だ。
795 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 07:44:28 ] >>789 お前、馬鹿
796 名前:デフォルトの名無しさん [2008/05/15(木) 07:55:47 ] >>788 年上のお姉さんに当てられたり、美少女の後輩にまさぐられたりする職場なんですね、俺と変わってくれ
797 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 08:00:39 ] データベース/SQL使うんなら、 ExcelVBAより先にAccessのクエリー/マクロ/レポートを覚えた方が金になるぞ
798 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 08:15:17 ] このスレではVBAでソートを作る方法を質問するといいよ。
799 名前:デフォルトの名無しさん [2008/05/15(木) 09:46:13 ] Vista、EXCEL2007です。 EXCEL2003(XP)で作成したマクロを動かすと動作が異なっています。 <コード> Range("A5").Select ActiveSheet.Pictures.Insert( _ "D:\abc\pic1.JPG").Select Range("A21").Select ActiveSheet.Pictures.Insert( _ "D:\abc\pic2.jpg").Select <現象> (1)Vistaでは、pic2の画像が、A21の個所でなく、A5の個所に挿入されます (pic1の上に重なって) (2)Vistaで、セルを選択して、画像挿入する操作をマクロ記録すると Range("A21").Selectは記録されてますが、 ActiveSheet.Pictures.Insert("D:\abc\pic2.jpg").Selectが 記録されていません。 上記プログラムで、pic2をA21の箇所に挿入できるようにするには どうすれば良いのでしょうか。 よろしくお願いします。
800 名前:番組の途中ですが名無しです mailto:sage [2008/05/15(木) 14:03:07 ] Excel2003のVBAでcontinue forが使えないのは仕様ですか?
801 名前:デフォルトの名無しさん [2008/05/15(木) 16:56:49 ] >>799 スクロールの問題……じゃないよな
802 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 15:32:49 ] Excel2000 シート上に ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1") で生成したチェックボックスのみを削除するプログラムを 実行すると アプリケーション定義またはオブジェクトの定義エラーです というメッセージが出ます。 s.FormControlType のところで エラーが出ているのですが、どうやったら動くようになるのでしょうか? Dim s As Shape For Each s In Sheets("sheet1").Shapes If s.Type = msoOLEControlObject Then If s.FormControlType = xlCheckBox Then s.Delete End If End If Next
803 名前:799 [2008/05/16(金) 17:00:43 ] >>801 レスありがとうございます。 スクロールの問題ではありません。 (1)の現象になったので、 マクロと同じ操作をして、マクロ記録してみたら (2)になりました。
804 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 18:30:33 ] >799 WorkSheet.Shapes.AddPicture(...) かな? 試してないけど ActiveSheet.Pictures.Insert( "D:\abc\pic1.JPG").Top = Range("A5").Top ActiveSheet.Pictures.Insert( "D:\abc\pic2.jpg").Top = Range("A21").Top
805 名前:799 [2008/05/16(金) 20:29:24 ] >>804 レスありがとうございます。 うまくいきました。
806 名前:デフォルトの名無しさん [2008/05/16(金) 20:37:24 ] 30125なら上位3桁だけとって、゙30100゙から100刻みで表示させたい。 0.002354なら゙0.00235゙から0.00001刻みでグラフの軸に表示したいのです。 何かよい方法はありませんでしょうか?
807 名前:799 [2008/05/16(金) 20:47:07 ] >>804 別質問ですけど、 804で挿入したオブジェクトのnameは、 どのようにすれば取得できるのでしょうか。
808 名前:デフォルトの名無しさん [2008/05/16(金) 23:37:41 ] 仕事でマクロを使って制御のシミュレーションをしたいのですが 1つのプロシージャ内でループ演算をしつつ、他のプロシージャを実行して 変数を変更したいと考えています。 複数のプロシージャを並列処理できる方法はないのでしょうか?
809 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 00:12:29 ] ActiveX EXEを作れば可能。 Win32APIのスレッドも使えるかもねー
810 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 01:15:28 ] 既出だったらすみません。 excel2000+winXpで開発してるんですが、 処理を走らせるとメモリの使用率がたまる一方で 解放されている気配を感じません。 しまいにはメモリが足りませんとエラーになり 落ちてしまいます。 助けて!!1 DAO3.6使ってるんですが関係しますかね? メモリを解放する方法ってありますか??
811 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 06:59:32 ] >>810 DoEvent とか 動的配列を使ってるなら必ずeraseするとか
812 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 08:39:43 ] >806 刻み幅等を計算する方法を知りたいというのが主旨かな? 30125の常用対数は、log(30125)/log(10) =4.47892705558292 切り上げて、5 上位3ケタだけ取るので、刻み幅は、10^(5-3)=100 切り上げは、round(x-0.5)+1 という感じかな。
813 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 10:29:50 ] >807 古い環境が無いんで試せてないけど Dim Pic1 As Picture Dim Pic2 As Picutre Set Pic1 = ActiveSheet.Pictures.Insert( "D:\abc\pic1.JPG") Pic1.Top = Range("A5").Top Range("A4").Value = Pic1.Name Set Pic2 = ActiveSheet.Pictures.Insert( "D:\abc\pic2.jpg") Pic2.Top = Range("A21").Top Range("A20").Value = Pic2.Name
814 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 14:03:34 ] >>808 複数のExcelインスタンスを起こして、マルチプロセスでやれば? これならWin32APIなんか使わずにできるが
815 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 19:17:01 ] timer使え
816 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 14:10:29 ] ループの中でたのプロシージャを呼び出せばいい 灰次
817 名前:デフォルトの名無しさん [2008/05/18(日) 23:31:42 ] マクロでNORMDISTを使いたいんですが、エラーが出てしまいます。 マクロではどのように記述すればNORMDISTは使えるのでしょうか? 誰か教えてください
818 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 11:05:13 ] Excel2000上で動的に配置したチェックボックスにイベント処理を追加したいのですが 方法がわかりません。ヒントだけでもいいのでお願いします。
819 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 16:39:14 ] >>818 classモジュール使えばできるよ
820 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 16:46:45 ] >>817 ヘルプの例で言えば、 42 対象となる値 40 分布の算術平均(相加平均) 1.5 分布の標準偏差 WorksheetFunction.NormDist(42, 40, 1.5, True) で、いいんじゃない?
821 名前:デフォルトの名無しさん [2008/05/19(月) 20:24:01 ] 実行時エラー'1004'が出ます。 コマンドボタンで、 Workbook Open "C:\-.xls" Worksheets("a").Select Range("A20").Select と入力し別ファイルのシートのセルを選択したいのですが、 どのように直せばいいか、教えていただきたいです。 よろしくお願いします。
822 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 21:26:10 ] >>821 ちゃんと目的のbookが開いているなら、シート名「a」のシートがあれば問題ないよ
823 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 21:55:45 ] >>821-822 シート上に置いたコントロールツールボックスのコマンドボタンならそんなんでまともに動くわけねーよ。 シートや範囲をちゃんとブックから明示しないと。
824 名前:822 mailto:sage [2008/05/19(月) 22:04:21 ] >>823 なるほど、 シート上に置いたコントロールツールボックスのコマンドボタン おまい天才! スレ汚しスマソ
825 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 20:21:39 ] >>823 のなかなかのエスパーぶりに嫉妬
826 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:28:05 ] 別に>>823 は普通だろ? Formのコマンドボタンなら>>821 でも動くだろうが、どこに書いても同じように動くコードを書かんとね。
827 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 23:30:47 ] >>826 どこに書いても同じように動くコードを書く必要はない コードを書いたクラスでまともに動けば問題ない
828 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 00:21:17 ] 質問させて頂きます。 デジタル署名付のVBAプロジェクトで、 ブックオープン時にオラクル接続をし、 オートシェイプで線を引くという処理をしております。 処理後、シートを見るとオートシェイプで描いた線の色がありませんでした。 プリンタで出力すると、線が描かれております。 原因と対処法を教えてください 【OS】windows XP pro 【EXCEL】2003 【処理内容】 Dim OraSession As Object Dim OraDatabase As Object Set OraSession = CreateObject("OracleInProcServer.XOraSession") Set OraDatabase = OraSession.OpenDatabase("TNS", "USER/PASS", ORADB_DEFAULT) Set OraSession = Nothing Set OraDatabase = Nothing ActiveSheet.Shapes.AddLine(98.25, 151.5, 150#, 159.75).Select といったかんじです
829 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 01:40:10 ] >>828 オラクル関係なくね? 接続して閉じてるだけだろ? それとも、オラクルに繋がなければ問題は解消されるの?
830 名前:826 mailto:sage [2008/05/21(水) 07:43:54 ] >>827 そりゃ確かにそうだね。 冗長な記述を避けるためにもMeとか書かんからね。 >>821 のコードに関してはということ。
831 名前:826 mailto:sage [2008/05/21(水) 07:46:16 ] Me.を書かんことはちょっと違うか。 まどうでもよい。
832 名前:デフォルトの名無しさん [2008/05/21(水) 07:59:09 ] 書式設定指定したら?
833 名前:デフォルトの名無しさん [2008/05/21(水) 17:42:10 ] XP、EXCEL2003です。 特定のディレクトリの直下にあるファイル(複数)のファイル名を 全て取得する方法を教えて下さい。 よろしくお願いします。
834 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 17:49:26 ] >>833 ちょこちょこ質問掲示板見てると週に1回は遭遇する質問 ググれば腐るほどコードがある 個人的にはfilesystemobjectを使うのが一番効率いいと思う
835 名前:833 [2008/05/21(水) 19:20:12 ] >>834 レスありがとうございます。 失礼いたしました。
836 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 21:22:28 ] fsoはネットワークドライブ相手だったりするとテキメンに 速度が落ちたりするから困る。 あと、ワイルドカードが無いのはどーゆーことだ。
837 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 23:21:02 ] >>836 独り言はチラシの裏に書け
838 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 06:44:14 ] 確かfsoは、クエリとってからのファイル追加や削除、内容変更に 伴う更新もかなりの直近まで自動的に更新してくれる中々の 優れモンだったという記憶が.... Kernel32.DLL のAPIを使って自分でクエリした場合は、 ファイル数が多く、激しく更新されるような場合は、取得情報と 実態の間に食い違いが発生してユーザーはパニくるのがオチなんだが (これもチラ裏に書くべきだったか)
839 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 18:21:06 ] わざわざfsoやapi使わんでもDir()関数使えばよい
840 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 21:25:32 ] Dirだとパスの長さが255以上になると確かエラーになる。
841 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 13:23:12 ] sage
842 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:07:41 ] OS:win xp excel:2007 初めて質問します。お願いします。 ・データ用のシート ・処理用シート の二つを用意します。 データ用シート 店舗→ A B C 商品↓ りんご 100 200 300 みかん 10 20 30 めろん 1 2 3 処理用シートのA1,B1のセルに店舗と商品を書き込むと、データ用のシートを参照して、 そのシートに書かれた数値(例えば、上記の表の「A店(=A1)」の「みかん=B1」だと「100」)が、 処理用シートのC1(「=100」が)に入るようにしたいです。 店舗、商品は任意で追加していきたいので、データ用シートの列、行を検索していくようなやり方がいいのでは、 と考えています。 調べて、VLOOKUP関数を使えば…、というところまで来たのですが、二点のセルの値を見て、 表から一つの値を出力する、というところがわかりません。 何卒、ご指導の方、お願いします。
843 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:01:34 ] >>842 VBAに関係ないと思うのだが。 vlookup以外にもlookupやmatchもあるんだから何とかなるだろそれくらい。
844 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:16:49 ] なんとかするのがお前たちの仕事だろ。 あのな、上から目線もいいけどここはVBAに詳しくない奴らが 何をどうやったらいいかを聞きにきてるスレなわけ。 その手ほどきをしてやった上でそういうこと言うならいいけど、 回答も示さずにそういうこと言うのは荒らしとかわんねーんだよ。 こたえる気が無いなら質問スレから消えろよカスが。 ↓じゃ、模範的回答を頼む
845 名前:釣られてみる mailto:sage [2008/05/24(土) 00:26:30 ] いや、それだけの情報でVBAでどうしろと。
846 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 03:07:26 ] スレタイ読め。ここは質問スレであって回答スレではない。
847 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 03:09:22 ] >>846 こいつ頭悪そうだな(ゲラゲラ
848 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 07:33:50 ] >>842 いろんなやり方があると思うけど、私がスマートだと思うのを提案します。 データ用シートをこんなふうにする。 ID 店舗 商品 値段 Aりんご A りんご 100 Aみかん A みかん 10 Aめろん A めろん 1 Bりんご B りんご 200 Bみかん B みかん 20 Bめろん B めろん 2 Cりんご C りんご 300 Cみかん C みかん 30 Cめろん C めろん 3 IDの列は数式で作る。Aりんごのところに =B2&C2 としてオートフィルで。
849 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 07:53:02 ] つづき 処理用シートで C1には =A1&B1 D1には データ用シートはSheet1にあるなら =VLOOKUP(C1,Sheet1!A:D,4,FALSE) としてできあがり。
850 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 08:12:05 ] >>842 C1に =index(「データの範囲」,match(B1,「商品名の範囲」),match(A1,「店舗名の範囲」)) と入れる これVBAじゃないから、次からはEXCEL総合相談スレの方へ行ってくれ
851 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 10:55:08 ] VBA初心者ですが質問させて下さい。 Module1で宣言したパブリック変数をThisWorkbookで参照する事はできないのでしょうか。 状況を説明しますと、nullpo.xlsというマスターファイルがあります。 その中のModule1で処理を実行すると、public変数をインクリメントします。 "名前を付けて保存時"の保存ダイアログで、あらかじめ表示されるファイル名に そのpublic変数を出したいのですがうまくいきませんでした…
852 名前:851 [2008/05/24(土) 13:22:46 ] クスン…終わらないと帰れないんです みなさんの力を貸して下さい。 言い忘れましたがわたしは女です。
853 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:26:25 ] >852 俺が何でも答えますよ もうちょっとしたら家に着くから待っててね ところで今日は帰ったらどうするの? 汗かいちゃったってシャワーでも浴びるのかな?かな?
854 名前:851 [2008/05/24(土) 13:34:41 ] >>853 ありがとうございます。 彼氏と待ち合わせしてるんです。
855 名前:デフォルトの名無しさん [2008/05/24(土) 13:39:32 ] VBAを自由自在に扱うために、VBの勉強をしようかと思うのですが VBの種類が多すぎてどれを勉強したらいいのかわかりませんでした。 VBAのためにVBを勉強するには、どのVBを勉強すればいいのでしょうか?
856 名前:853 mailto:sage [2008/05/24(土) 13:41:43 ] 死ね。お前に教えることは何もない 自分でどうにかするんだな
857 名前:853 mailto:sage [2008/05/24(土) 13:42:33 ] 856は>854宛てな
858 名前:851 [2008/05/24(土) 13:59:41 ] そんな… 他スレで質問することにします。 すみませんでした。
859 名前:側近中の側近 ◆0351148456 [2008/05/24(土) 15:22:18 ] >>853 (っ´▽`)っ 独身の女の子には優しいのね。最低☆
860 名前:側近中の側近 ◆0351148456 [2008/05/24(土) 15:23:00 ] >>855 (っ´▽`)っ VBAならVB6.0だね。
861 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:25:38 ] >>856 手のひら返しワロス
862 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:29:18 ] >>851 そのpublic変数値を返す、public関数でも作れば? つか、ダイアログに値をいれて有効にする処理が出来てないだけの気がするが…
863 名前:855 [2008/05/24(土) 15:29:35 ] >>860 ありがとうございます。
864 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:39:20 ] >>860 VB6.0やVB.NETをVBAを使えない人に勧めちゃらめどちらも超ベテラン向けだよ VBScript位しか残らないけど、VBAとはちょっと合わないかも知れないね。 やっぱしVBAはVBAで覚えるしかないのかな(鬱
865 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:18:52 ] VBAを覚えたいのにVBAを利用しない意味がわからない
866 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 21:16:49 ] >>842 商品と店舗の組み合わせが疎であるなら>>848 の方法 組み合わせが密であるなら>>850 の方法がいいだろうね。 ところで解決したのかどうか反応がほしいもんだね。 コミュニケーションしようや。
867 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 21:25:26 ] >>865 これほんとにその通り。 なんでVBAを覚えるためにVBを覚えたいなんて言うのかな。 VBを覚えたいんだって素直に言えばいいのに。
868 名前:デフォルトの名無しさん [2008/05/24(土) 21:29:23 ] VBってMSDNライブラリ使えるの?
869 名前:デフォルトの名無しさん [2008/05/24(土) 21:38:17 ] VBAを体系的に勉強するのにいい本とかありますか?
870 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 21:46:29 ] 実戦力UP! Excel VBAドリル式問題集
871 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 21:47:13 ] VBAとはマクロの記録で泥縄式に覚えていくもんだ
872 名前:デフォルトの名無しさん [2008/05/24(土) 22:46:45 ] エクセル2003で上の行から数字が入ったセルだけをm個 選んで加えるVBAをうちたいんですが、上手くいきません。 for a = 1 to 100 m = cells(3 , 3) b = cells(1 + k + a , 1 ) k = 1 s=1 do while s =< m if b <>"#na n/a" then b = b + cells(1 + k + a + s , 1) k = k + 1 s = s + 1 else k = k + 1 loop next いまこんな感じで打ってるのですが、 if b <>"#na n/a" then のところで止まってしまいます。 どこがおかしいのでしょうか? また、もっといい方法はありますか?
873 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:21:29 ] >>872 「数字が入ってるセル」なら条件をb≧0にすれば?
874 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:33:33 ] 負の数は数字ではないと?
875 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:38:47 ] kとsを+1しているがループするたびに初期値が1に戻るぞw あと、b = cells(1 + k + a , 1 )の部分、1回目の処理でkの値が判らない。
876 名前:デフォルトの名無しさん [2008/05/24(土) 23:39:42 ] application.run "abc" msgbox "zzz" abcマクロの完了の後に、ダイヤログボックスにzzzを表示したいのに、 即行でzzzが表示されてしまう。 同期をするようにするには引数か何かを入れるのでしょうか?
877 名前:デフォルトの名無しさん [2008/05/24(土) 23:40:54 ] >>873 なるほど。そういう方法がありましたか。 ありがとうございます。 >>874 負の数は存在しないデータなので、大丈夫だと思います。 エラーがでた原因がわかる方はいらっしゃりましたら、お答えいただきたいです。
878 名前:875 mailto:sage [2008/05/24(土) 23:42:23 ] ごめん入れ子になってたんだな。最初のforしか見てなかった。
879 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:43:21 ] end ifが無いな
880 名前:872 [2008/05/24(土) 23:43:44 ] >>875 すいません初心者なもので、いまいち意味不明です。 勉強して理解したいとおもうのですが、参考までにどういった 勉強をすればいいか教えてください。 オススメの本、サイト等等・・・
881 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:46:56 ] >>877 <>"#na n/a" エラー値でなければ って条件と思っているのであれば間違い。 エラー値かどうかを調べたいのならiserrorを使う
882 名前:872 [2008/05/24(土) 23:47:24 ] for a = 1 to 100 m = cells(3 , 3) b = cells(1 + k + a , 1 ) k = 1 s=1 do while s =< m if b > 0 then b = b + cells(1 + k + a + s , 1) k = k + 1 s = s + 1 else k = k + 1 end if loop next これで大丈夫でしょうか?
883 名前:デフォルトの名無しさん [2008/05/24(土) 23:48:51 ] >>881 そういうことでしたか。 iserrorという存在を知りませんでした。 勉強不足でした。 ありがとうございます。
884 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:53:46 ] > if b <>"#na n/a" then これエラーなんか出ないよ 意図したとおりには動かないかもしれないけど
885 名前:デフォルトの名無しさん [2008/05/24(土) 23:57:29 ] 根本的な間違いがあった for a = 1 to 100 m = cells(3 , 3) b = cells(1 + k + a , 1 ) k = 1 s=1 do while s =< m if cells(1+k+a+s-1 > 0 then b = b + cells(1 + k + a + s , 1) k = k + 1 s = s + 1 else k = k + 1 end if loop next すいませんでした。
886 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 00:18:54 ] まあなんだ ちょっと落ち着け
887 名前:デフォルトの名無しさん [2008/05/25(日) 12:04:28 ] シートコピーで悩み事があるので打開策を見つけられたらと思い書きこまさせていただきました。 どなたかお助けいただけたらうれしいです。 VBAにてシートコピーに要する時間が長くて(10分以上)悩んでおります。 Bookの構成といたしまして標準モジュールに数式文字列を評価するものを かいてあります。 Function Eval(ByVal expr As String) Eval = Evaluate(expr) End Function ・Sheet1には、様々な経理データを入れるようにしてあります。 そこに入れた値などを元にセル名を作るように書いてあります。 例)A1に”1”という値でB1に”2”という値が入っていればA2のセル名を”12” とします。 ・Sheet2には予めセルに=eval(12)の様な数式をいれ評価をしております。 これが1枚のシートに2000くらい数式が入っています。 Sheet1、2ともに特定条件のとき複製を何枚か作ります。 このときすごく時間がかかります。 原因は数式が大量にあるものをコピーすること及びセルに名前をふっているのが原因なのは分かりますが コピー以外の動作が非常に快調なので変えたくないということとたぶんeval以外での解決策を模索するのはかなり時間を要しそうなのでコピーを何とかする方を選びたいです。 もちろん再計算の停止などはしてあります。 事前に特定条件を作りだしシートを非表示にしておき特定条件のときに表示させるのも 一つの手ではありますが何百枚もシートを隠しておくとファイルサイズがばかでかくなるという 難点もあって躊躇しています。 例えば=eval(@@@@@@)を多く入れたのが原因であれば標準モジュールを何らかの形でいったん無効にすれば早くなるのかとかスクリプトなどを使って別のブックからシートを移動させるなど・・・・他の代替案はありえないでしょうか? 何分わかりづらい質問で申し訳ありませんが、ご回答いただければ幸いです。 よろしくお願いします。
888 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:11:58 ] まず計測しろよ。んで、遅い原因を特定してから、もっとわかりやすい文章で再質問な。
889 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:58:21 ] 自動計算やめてシートコピー
890 名前:876 mailto:sage [2008/05/25(日) 13:03:06 ] >>887 質問する方のレベルのものが下手なレスをつけるのもどうかと思うが、 設問説明に既に回答があるような・・・ 経理処理なのでシート数が大量となるのはある程度やむを得ないでしょうが、 それにしても、10分というのはかかりすぎというか、長いですね。 1 object.enablecalculation=falseを設定されていると言うことですが、 必要なシート全てにされているかどうか 2 通常、速度を速める常套手段の application.screenupdating=false application.visible=false application.enableevents=false で、どうなるか試してみたらいかがでしょう 私の質問は解決しました。 直列処理のはずが、並行処理になったのかとの疑問からでしたので。
891 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:55:25 ] >>887 どこかで見たような質問だな 何でそんなおかしなことするの?
892 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:59:47 ] >>887 に回答する人は次を見てからにしてね www.moug.net/faq/viewtopic.php?t=27321
893 名前:釣られてみる mailto:sage [2008/05/25(日) 17:02:02 ] >>887 別にここはブック提示禁止じゃないから晒してみたら?
894 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 17:05:09 ] ' ただの荒らしのコピペじゃないかと疑い始めた
895 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 17:27:39 ] なんだ、二週間前の話じゃねーか。 第三者によるコピペの疑い濃厚だな。 しかし、誰もプロファイリングしろというアドバイスしないって、mougってどんだけ素人集団なんだよ
896 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 17:30:54 ] あー、ひょっとして、シートを一枚sheet.copyで10分かかるってことか? だったら、プロファイリングも糞も無いな
897 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 18:13:57 ] プロファイリングっていうの初めて聞いたorz
898 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 22:50:47 ] マルチなら放置 荒らしのコピペなら放置 どっちにしても放置だな
899 名前:デフォルトの名無しさん [2008/05/25(日) 23:12:29 ] セルに記載されている文字列を変数名として認識させる方法はありますでしょうか?もしくは無理ですか? (1,1) に hoge って文字列が入っていて、VBAの記述内に、 cells(1,1).value = 100 '←これは当然上書きされますが・・・。 のように、変数名として取得して代入が出来たら良いな。と考えております。 なにとぞよろしくお願いします。
900 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 23:16:16 ] aaa(1,2,3) bbb(1,2,3) 2個の同一の配列があるのですが、この二つが同一であるかの判定について質問させてください。 今は配列長を取得して、forで繰り返してaaa(i) = bbb(i) と1要素ずつ判定しているのですが、 もっとシンプルに、行数を少なく判定する方法はありますでしょうか。アドバイスお願いしま!!!
901 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 23:21:29 ] >>899 hogeをどこにも使ってないじゃないか。 >>900 原理的に全要素を比較するしか判定のしようがないから、今の方法でいいんじゃない?
902 名前:VBAの初心者 [2008/05/26(月) 01:57:42 ] VBAで配列によって書き込む練習をしているのですが想像力が無くどうやってうまくやればいいのか悩んでます。 どなたかヒントをいただけないでしょうか。 この表のような規則と二つの数式を入れたいのですがどうやったらいいでしょうか? よろしくおねがいします。 briefcase.yahoo.co.jp/bc/robert_kubica_bmw/vwp2?.tok=bcUvZBbBSBm6GmJ2&.dir=/&.dnm=Book1.xls&.src=bc
903 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 02:31:24 ] >>899 は>>887 のような気がするのは俺だけ? 馬鹿さ加減が似てるんだが。
904 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 02:38:50 ] 言葉遣いは似てるね、無駄に敬語とか
905 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 06:21:48 ] >>899 Common Language Runtime Library を参照設定して Dim ht As Hashtable Set ht = New Hashtable 詳しい使い方は ttp://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard28.htm 別にScripting.Dictionaryでもいいんだけどね。 文字列と添え字のどちらでも変数にアクセスしたいなら SortedListを使えば可能。
906 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 06:37:27 ] >>900 joinして比較
907 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 07:19:32 ] それやるならデリミタを変数中に絶対出てこない文字にしておけよ
908 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 10:41:35 ] 一応ExcelVBAの質問です プログラム実行中に、ユーザーフォーム上のimageの表示・非表示や、 ラベルのキャプションの変更することは出来ないのでしょうか? 実行中に内容が変更できるオブジェクトはprogressbarのみですか?
909 名前:デフォルトの名無しさん [2008/05/26(月) 18:21:24 ] 連投、誠にスマンです VBAで、作業用シートを作成して、ソートとか 色々やった後、用が済んだらシートを削除するようなプログラムを作って いるのですが、 sheets(hoge).delete の後、必ず「データあるけど削除してOK?」っていうダイアログが出てしまいます。 このダイアログに自動的にYesで答えて、プログラムを中断しないように 出来ないでしょうか。
910 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:21:36 ] なんちゃらAlear = false
911 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:30:16 ] tが抜けてたorz DisplayAlertsでヘルプ嫁
912 名前:デフォルトの名無しさん [2008/05/26(月) 20:19:11 ] >>908 UserForm1.Label1.Caption = "testtest" 表示・非表示なら多分 〜.visible = true とか false とかで逝けるんじゃね?
913 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:08:10 ] >>910 ありがとうございます! できました。 >>912 プログラムが走っている最中は、フォームの画面更新が 行われないようで、それらが効かんです(T-T
914 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:36:25 ] Screenupdating=falseが入っていたら画面の更新はされないが、そういうオチか。
915 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:32:05 ] >>913 ループにDoEvents
916 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:38:57 ] ちなみに、DisplayAlertsもScreenupdatingもマクロの最後でちゃんとTrueに戻すのが基本だからな
917 名前:デフォルトの名無しさん [2008/05/26(月) 23:43:01 ] 質問失礼します。 新しいシートを作成→そのシートにスクリプトやイベントを埋め込む を自動でやるにはどうしたらよいですか? もちろん埋め込みたいスクリプト等は事前に作成しておくものとします。 どうすれば、それを新しいシートに埋め込む操作ができますか? お手数をおかけします。よろしくお願いいたします。
918 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:04:19 ] 1. そのシートにスクリプトやイベントを埋め込まなくてもいいような設計にする Workbookオブジェクトにどんなイベントがあるか調べてそれをググれ 2. 今は亡き、石井勝氏のありがたいページを熟読する(合掌) ttp://www.morijp.com/masarl/homepage3.nifty.com/masarl/article/excel-decorator.html 3. ここまでで大抵の問題は解決するはずだが、それでも足りない場合は、動的にコードを追加しろ vbcomponetでググれ
919 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:08:53 ] ちなみに3を推奨しないのは、それを実行するPCグローバルなExcelの設定を変更する必要があるから。 マクロの信頼性とは別に、「Visual Basicプロジェクトへのアクセスを信頼する」という設定をしなければならない。
920 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:37:37 ] >>917 ・Class1を作って、Public WithEvents sh As WorkSheetを追加 ・ThisWorkBookのモジュールに、Dim o As Class1を追加 ・ThisWorkBookのWorkbook_SheetActivateで、 ・Set o = New Class1 ・Set o.sh = sh ・Class1のsh_SelectionChangeで、 ・MsgBox Target.Parent.Name & "!" & Target.Address 似たような感じで、各シートのモジュールにコードを追加することなく、イベントハンドらを 実装できる。あとは、Class1のo.shやら、ActiveSheetやらで、各シートのモジュール外に コードを実装しろ。シートごとに違う処理をする場合は、sh.Nameとかで振り分けろ。
921 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:59:11 ] >>917 新規に埋め込まなくても、雛形シートをコピーした新しいブックを作って解決
922 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 01:23:29 ] チンコが大きくなるマクロを作ったはいいんですが、どうやって呼び出したらいいんですか?
923 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 01:26:59 ] >>922 ああ、それさっきコンパイルしたら「オブジェクトが小さすぎます」ってコンパイルエラー出たよ
924 名前:デフォルトの名無しさん [2008/05/27(火) 08:15:42 ] 連続質問になってすんません…セル名が変わらんくて困っとります。原因がさっぱりどす…If Worksheet("Sheet1").Range("A1").value = 1 Then For i =1 to 20 Worksheet("Sheet1").cells(1,i).name = "mid"&cells("B",i).value Next i End if Next
925 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 09:05:37 ] 何をやってるのかさっぱりどす Worksheet("Sheet1").cells(1,i).Name.Name
926 名前:913 [2008/05/27(火) 09:18:33 ] >>914-916 ありがとうございます。 Do Events を試して見ます!
927 名前:デフォルトの名無しさん [2008/05/27(火) 10:09:15 ] A1の"セル名"を変えるには、range("A1").value = "ほげ" どすえ。
928 名前:デフォルトの名無しさん [2008/05/27(火) 11:04:14 ] Excel一般の質問ではないのですが、ExcelVBAのリストボックスの 中身の上下スクロールをマウスのホイールに連動させることは 出来ないのでしょうか? ググってみたのですが、分かりませんでした。
929 名前:917 [2008/05/27(火) 15:59:44 ] >>918-921 ありがとうございます!勉強になりました。 とりあえず一番簡単な921さんの方法を試してみますね。
930 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:02:04 ] ネタでも「変わらんくて」と言う奴が死ぬほど嫌いだから絶対教えない。 ら抜き言葉でもブチ切れそうなのにさぁ、どうしてわざわざ”な”を”ん”に 置き換えるんだよ最近のゆとりどもは。書いてて違和感ねーのか糞が。
931 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:06:07 ] >>930 基地外乙w 単にローマ字入力でAが抜けたTypoだろ
932 名前:930 mailto:sage [2008/05/27(火) 17:00:52 ] >>931 いや、「分からんくて」「変わらんくて」「倒せんくて」 とか書き込む奴はかなり多いぞ。 そういう言い回しが流行ってんのか?ってほど。 年齢層の低いスレ覗いていないと分からんくても 仕方ないけど… >>932 >分からんくても 死ね
933 名前:913 mailto:sage [2008/05/27(火) 17:11:05 ] ユーザーフォームの更新の件、DoEventsでいけました ありがとうございました >>932 それは関西弁っていう日本ではメジャーな言語
934 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 18:43:46 ] 35才の関西人だが「…くて」は割と使う。 >>930 はもう少し視野を広げてみてはどう?
935 名前:デフォルトの名無しさん [2008/05/27(火) 19:56:10 ] テンプレみたらNG質問のようだが、適当なスレが見付からないので教えてください。 ExcelBVAのテクニックは大体わかります。 しかし、「Excelを起動するとVB?が起動し、ユーザーフォームとExcelが分離している状態」 のプログラム技術を身につけたいと思っています。 これを会得するには、やっぱりVBの知識と多大なる努力が必要なんでしょうか?
936 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:19:11 ] 24歳の関西人の俺はつかわない だがそんなことにマジ切れすとか、情緒不安定なんじゃね?
937 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:49:46 ] >>935 VBAでできる。 どれくらいの努力が必要かは、君のセンスと知力に依存するので誰も答えられない。
938 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:54:29 ] >>935 できない私が言うのもなんだが、そんなことできて何がいいの?
939 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:55:50 ] ユーザーフォームって、マウスホイールに対応してないとか 使いづらいんじゃないすか。 >>936 「マジ切れす」?また怒られるぞ!
940 名前:デフォルトの名無しさん [2008/05/27(火) 22:31:35 ] >>937 うおお、マジですか、VBAでできるの? 怒られそうだがさらに質問。 どうやんの?メニューバーとかどーみてもVBっぽかったけど。
941 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:34:41 ] >ExcelBVAのテクニックは大体わかります。 >ExcelBVAのテクニックは >ExcelBVA ExcelVBAを知らないんだからしょうがないよな
942 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:39:26 ] エクセルを隠すだけなら ' Excel本体は隠す Private Sub UserForm_Initialize() Application.Visible = False End Sub やりたいのはこういう事?
943 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:51:25 ] そうじゃなくて、エクセルを使わずに、フォームだけで何かを 構築したいという事でしょ。
944 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:53:16 ] >>930 関西人を馬鹿にしとるんかわれぃ!
945 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 23:06:59 ] 関西人なら「変わらんで」「変わらんかって」だと思うが
946 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 23:07:23 ] 河内のぉ〜○っさんの歌ぁ〜
947 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 15:57:23 ] はじめまして。 リストボックスで選択した項目を任意のアクティブセルに反映させる時、 反映させたくないセルに反映させないようにするにはどうしたら良いでしょうか? 例えば、セル"A1"には反映させたくないけど、"A1"をアクティブにしたまま リストボックスにて項目を選択して反映させてしまうのを防ぎたいのですが。
948 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 16:26:21 ] >>947 オフセットかなんか使って条件分岐するしかないのでは? B1に何か入力がある時は、A1には入れないみたいな感じで。 Sub nnn() If Trim(ActiveCell.Offset(0, 1).Value) = "" Then ActiveCell.Value = Userform1.ListBox1.value Else: Exit Sub End If End Sub
949 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 20:07:47 ] ありがとうございます 試したけどなかなか理想した感じにできなかったので、 ロック設定で我慢します・・
950 名前:デフォルトの名無しさん [2008/05/28(水) 20:27:42 ] >>943 そうです。今の考えでは、 @フォームにあるボタンを押すとExcelが起動して、 A入力用のフォームに値を入力すると、 Bクチャクチャっと値が返されて、(大量の関数的な部分があるので、慣れたExcelのセルでやりたい。) CCSV形式で出力されて、 D違うソフトにそれを読み込ませる、またはVBだったらそのソフトを外部から操作してやってみたい。 (そのソフトの仕様は全然わからんのだが。) Dが無ければVBAでやれると思うんだが、Aの時に、ExcelVBAだと俺の知識ではマクロ実行中は 任意のセル編集ができない。 やっぱVBじゃないとダメ??
951 名前:デフォルトの名無しさん [2008/05/28(水) 20:28:23 ] >>943 そうです。今の考えでは、 @フォームにあるボタンを押すとExcelが起動して、 A入力用のフォームに値を入力すると、 Bクチャクチャっと値が返されて、(大量の関数的な部分があるので、慣れたExcelのセルでやりたい。) CCSV形式で出力されて、 D違うソフトにそれを読み込ませる、またはVBだったらそのソフトを外部から操作してやってみたい。 (そのソフトの仕様は全然わからんのだが。) Dが無ければVBAでやれると思うんだが、Aの時に、ExcelVBAだと俺の知識ではマクロ実行中は 任意のセル編集ができない。 やっぱVBじゃないとダメ??
952 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:47:53 ] >>951 それって、100%ExcelVBAのような気がするけど・・・
953 名前:デフォルトの名無しさん [2008/05/29(木) 09:23:10 ] 共有されていないブックを、"読み取り専用"で開いているメンバーを VBAで調べるのは不可能ですか。
954 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 09:59:49 ] VBAにCで言うDefineのようなものはないのでしょうか。 StaticステートメントをDefineのように使うのはおかしくないですか?
955 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 11:02:16 ] 自分の家でつくったユーザーフォームが友達のPCで開いたら 背景色が変わってたんだけどなんで? 俺excel2000 友excel2002
956 名前:デフォルトの名無しさん [2008/05/29(木) 14:31:16 ] ユーザーフォームの色は、絶対指定と、OSの設定にあわせる方法と 二種類あって、おそらく後者を適用しているのでしょう。
957 名前:デフォルトの名無しさん [2008/05/29(木) 17:38:31 ] VBAに日本語化パッチを当てるにはどうすればいいのでしょうか
958 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 20:44:31 ] いろいろと検索してもわからなかったので質問させていただきます。 CSVファイルをエクセルファイルに変換したいのですが、特定の列だけを 文字列として処理を行いたいのです。 また、変換元のCSVファイルの指定をBATファイルを利用したいのですが、 よい手段がわかりませんでした。 なにかいい方法はありませんか??
959 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 21:15:00 ] Excel総合相談所 69 pc11.2ch.net/test/read.cgi/bsoft/1211605143/
960 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 22:26:56 ] VB Editor じゃなくて、自分の好きなエディタでマクロを書きたいのんですが、 何かいい方法ありますか? 今はエディタから全コピーしてVBA側に全ペーストしてます;;
961 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 22:52:06 ] 俺は秀丸派でCもJAVAも書いてたんだけど VBA使ってみてビビった。あれはVBAが 元始にして究極のエディタだと思うんだが。 関数の保管とかしてくれるしもう最高。
962 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 22:52:26 ] ×保管 ○補完
963 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 00:49:04 ] UserFormで変数を持つにはどうすれば良いですか? UserFormにTextBoxを貼り付けてTextBox1を変数として使うのもよいのですが 内部で使う変数なので表示はしたくないです。 何をやりたいかというと、このUserFormでOKボタンを押されたことをBOOL変数に記録し、 そして呼び出し元で、OKが押されたかどうか判断したいです。 つまりMFCで言えば CDialog dlg; if(dlg.DoModal() == IDOK) { UserFormObj.Show IF UserFormObj.bOk = TRUE THEN 処理 END IF 見たいな事をしたいです。
964 名前:デフォルトの名無しさん [2008/05/30(金) 00:50:38 ] UserFormで変数を持つにはどうすれば良いですか? UserFormにTextBoxを貼り付けてTextBox1を変数として使うのもよいのですが 内部で使う変数なので表示はしたくないです。 何をやりたいかというと、このUserFormでOKボタンを押されたことをBOOL変数に記録し、 そして呼び出し元で、OKが押されたかどうか判断したいです。 つまりMFCで言えば CDialog dlg; if(dlg.DoModal() == IDOK) 処理 みたいな。 VBAだと UserFormObj.Show IF UserFormObj.bOk = TRUE THEN 処理 END IF って感じだと思ってます。
965 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 00:51:28 ] すみません。2重カキ子しちゃいました。。>>963 は無視してね
966 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 00:53:35 ] すみません。2重カキ子しちゃいました。。>>963 は無視してね
967 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 00:54:08 ] >>964 UserFormにOKプロパティを作る 又は、手軽に標準モジュールにPublic変数を宣言する
968 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 00:54:10 ] すみません。2重カキ子しちゃいました。。>>964 は無視してね
969 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 00:56:33 ] >>967 ありがとうございます。 OKプロパティーというのがあるのですね。勉強になります。 #今日は書き込みがやたらエラーになる(:_:)。スレ汚しすみません。
970 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 00:59:35 ] >>969 ごめん、UserFormにOKプロパティ作っても、UserFormが閉じたら変数破棄されるからダメだね Public変数でどうぞ
971 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 14:30:19 ] VCで作成したDLLを使用してVBAでプログラマしてます。 Private Declare Function DataRead Lib "ExcelVBA.dll" Alias "_CareerDataRead@4" (strFileName As String) As String・・・@ だと「DLLが見つかりません」と出てきます。そんで、Dllのパスをフルパスにしてやると動作するんですが、そすると他のPCで パスがないので「Dllが見つかりません。」と出てきちゃいます。 できれば、ブックのあるフォルダにDLLをおいて@のように呼び出したいのですが、無理なのでしょうか?
972 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 14:46:15 ] >>971 つ環境変数
973 名前:デフォルトの名無しさん [2008/05/31(土) 10:10:45 ] セルに挿入されているハイパーリンクを普通にクリックして、ページ先に飛ぶようなことを VBAから実行することは可能でしょうか。 あと、ユーザーフォームにハイパーリンクを張ることは可能ですか?
974 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:36:15 ] 例えば、PC起動時にあるソフトをアップデートしたいとき、VBAできたりするんですか?
975 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:46:21 ] そんなもんメールで告知しろ。 内部的なソフトで、アップデート(上書き)したいだけなら バッチファイルとスタートアップのショートカットを駆使すりゃいいやん
976 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 15:16:33 ] VBAからSystem.Text.StringBuilderを使うとき、 オーバロードがどのAppend_数字に対応しているか調べるには どうすればよい?
977 名前:デフォルトの名無しさん [2008/06/01(日) 18:51:45 ] エクセル2000で 指定した名前で CSVファイルで保存する方法ってわかりますか?
978 名前:デフォルトの名無しさん [2008/06/01(日) 19:29:10 ] >>977 マクロの記録で出てこないか?
979 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:37:44 ] >>977 使ったことないけど、getsaveasfilename でいいんじゃない?
980 名前:側近中の側近 ◆0351148456 [2008/06/01(日) 20:32:46 ] >>977 (っ´▽`)っ Excel2000のVBAでCSV保存すると、 日付型はことごとく文字化けするけどなー☆
981 名前:デフォルトの名無しさん [2008/06/01(日) 20:44:27 ] >>978 >>977 サンクス
982 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 10:24:47 ] ビジュアル ベーシック フォー 哀川翔
983 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 15:11:45 ] >>980 普通に読めますが?
984 名前:側近中の側近 ◆0351148456 [2008/06/02(月) 20:44:29 ] >>983 (っ´▽`)っ Jan 1 2007とかにならんかね?
985 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:51:41 ] >>984 文字化け?
986 名前:側近中の側近 ◆0351148456 [2008/06/02(月) 20:54:18 ] >>985 (っ´▽`)っ これは文字化けじゃないか。 細かいことは気にするな☆
987 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:06:08 ] いわゆるマクロウイルスとかいうやつのコードの書き方教えて。 ウイルスチェックで引っかかるところを見てみたいだけです。
988 名前:デフォルトの名無しさん [2008/06/03(火) 12:49:33 ] 携帯からたどり着きました。スレ違いだったらすみません。 よかったらご教授願います。多分とても簡単な事だと思うのですが…超初心者です。 OSはXP、Excel2003です。 ファイルAの内容を、カメラ機能を使って、ファイルBに取り込もうとしています。 ファイルAのシート名は1〜31までの整数です。(1日1シート) ファイルB上でマクロを実行した時、実行日に相当するシートの範囲を読むようにしたいのですが、以下のマクロでは、エラーになってしまいます。手直しして頂けないでしょうか。宜しくお願いします。 Sub カメラのリンクを編集() Dim i As String i = Day(Date) ActiveSheet.Shapes("camera").Select Selection.Formula "='G:\平成20年\[ファイルA.xls]i'!$A$1:$K$60" End Sub
989 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 13:02:37 ] ここは手直しスレじゃないんだが。 せめてどんなエラーになったか位書こうよ。 あー、シート名が変数i(不適当な名前だw)に入っているのなら、文字列を組み立てないとダメだね。 >988では"i"と言う名前のシートを探そうとしてしまう。
990 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 13:03:52 ] ×ご教授 ○ご教示
991 名前:デフォルトの名無しさん [2008/06/03(火) 14:55:10 ] >989、990 文字列を組み立てるというアドバイスの元見直しをして、無事完成しました。 スレ違い失礼しました、「ご教示」ありがとうございました。
992 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 15:38:51 ] 質問したいけど構文ここに書くの面どくせえ
993 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 18:52:12 ] ・・・ If ActiveCell.Column = 6 Then Range("A1:A10").Copy ActiveCell Else MsgBox "ここは駄目" End If ・・・ これだと6列目を先頭としてA1〜A10のセルをコピーでき、 6列目以外は入力不可でmsgboxが出るのですが、 例えば6列目〜10列目を入力可能にするにはどうしたら良いでしょうか?
994 名前:デフォルトの名無しさん [2008/06/03(火) 22:18:12 ] オートシェイプの始点やら終点ってどういう単位? Sheets(2).Shapes.AddLine(Xs, Ys, Xe, Ye).Select たとえば、こうやって変数で当てて500から520までかけ。次に520から540までかけ ってやっても線がつながらんのだが。
995 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:32:55 ] >>994 ちゃんとつながるぞ。単位はポイント Sheets(1).Shapes.AddLine(50, 100, 100, 50).Select Sheets(1).Shapes.AddLine(100, 50, 150, 100).Select Sheets(1).Shapes.AddLine(150, 100, 100, 150).Select Sheets(1).Shapes.AddLine(100, 150, 50, 100).Select
996 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 10:34:25 ] VBAを使用して作成したExcelファイルを立ち上げようとすると、 「問題が発生したため、Microsoft Excel for Windows を終了します。 ご不便をおかけして申し訳ありません。」 というMicrosoftのエラーになり、Excelが開かなくなってしまいました。 中のモジュールを何とか見る方法はないでしょうか?
997 名前:デフォルトの名無しさん [2008/06/04(水) 20:06:50 ] あるセルにある文字列が入っています。特定の文字列では無いのですが、 この文字列から、条件を満たす物を抽出したく考えております。 具体的には、「*」 で囲まれた文字列を抜き出したく考えております。 (「」で囲まれた物以外を削除) 調べてみたのですが、このような処理は可能でしょうか。 可能でありましたらば、教えてくださいませ。よろしくお願いします。
998 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:23:50 ] regexp
999 名前:デフォルトの名無しさん [2008/06/04(水) 22:58:25 ] 次 pc11.2ch.net/test/read.cgi/tech/1212587819/l50
1000 名前:デフォルトの名無しさん [2008/06/04(水) 23:08:39 ] 10000ならオマエラの人生幸せ それ以外なら一生不幸
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。