1 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 15:42:51 ] ExcelのVBAに関する質問スレです 前スレ pc11.2ch.net/test/read.cgi/tech/1219673793/ ★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)
496 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 20:37:40 ] >>495 考えすぎたみたいです。解決しました。 ありがとうございましたm(_ _)m
497 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 20:43:27 ] >>494 オレの知らないテクニック満載で何やってんのか理解できねえ
498 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 20:46:09 ] すみませんw
499 名前:デフォルトの名無しさん [2009/01/12(月) 07:19:54 ] 2007の質問ですー 図形の操作がらみが「マクロの記録」に残らないんですが 以前のバージョンのように記録させる方法ないでしょうか?
500 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 08:23:04 ] >>499 ない
501 名前:デフォルトの名無しさん [2009/01/12(月) 17:55:50 ] 初歩的な質問で申し訳ありません。教えていただけますでしょうか。 下図@のように、クラスと番号と氏名が入力されているファイルがあります。 下図Aのように、クラスと番号のみが入力されているファイルがあります。 クラスと番号の2つをキーに、図@からAに氏名をとってきたいのですが、 どのようにしたら良いでしょうか。 キーが1つであれば、VLOOKUPで出来るのですが、2つになって困っています。 宜しくお願いします。 図@ 図A クラス 番号 氏名 クラス 番号 1 1 相沢 1 1 1 2 加藤 1 2 1 3 佐藤 2 1 1 4 館山 2 2 2 1 安西 2 3 2 2 木村 2 3 工藤
502 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 17:57:54 ] Excel総合相談所 76 pc11.2ch.net/test/read.cgi/bsoft/1228655230/942 942 名前:名無しさん@そうだ選挙にいこう[] 投稿日:2009/01/12(月) 17:51:11 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 VLOOKUP 値の取り出し 下図@のように、クラスと番号と氏名が入力されているファイルがあります。 下図Aのように、クラスと番号のみが入力されているファイルがあります。 クラスと番号の2つをキーに、図@からAに氏名をとってきたいのですが、 どのようにしたら良いでしょうか。 キーが1つであれば、VLOOKUPで出来るのですが、2つになって困っています。 宜しくお願いします。 図@ 図A クラス 番号 氏名 クラス 番号 1 1 相沢 1 1 1 2 加藤 1 2 1 3 佐藤 2 1 1 4 館山 2 2 2 1 安西 2 3 2 2 木村 2 3 工藤
503 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 21:11:53 ] こんなスレにホイホイ質問して良かったのか? 俺はマルチポストでも構わず答えちまう男なんだぜ。 俺なら、どっかのセルにクラスと番号を結合させた物を作る。 cells(i,1).value & "-" & cells(i,2).value をforでまわしてどっかに作る。 図1と図2に同じ処理。 後はfindでsetするなり、好きに料理しろ。
504 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 21:50:33 ] 実行中のマクロより呼び出すことで、実行を中断しデバッグ可能な状態にする コマンドはありますか? マクロの自動記録で試しましたが記録されませんでした。
505 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 21:58:38 ] >>504 勘違いかも知れんが、Stopとかブレークポイントの事か?
506 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 22:28:43 ] >>505 そうです。 ブックを開いてマクロ実行する運用の中で、 一定の条件が成立した時に止めたいのですが、 ブックを開く度にブレークポイントを手動で設定するのは 現実的ではないのでブレークポイントはちょっとNGと思ってます。 イメージとしては以下のような感じです。 if xxxxx then application.stop ← ここで止めたい end if ブレークポイントをマクロより動的に設定できるか、 ブックに保存できる方法でも助かります。
507 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 22:30:16 ] >>506 errとerr.number使えばいいんじゃねーの?
508 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 22:34:30 ] MsgBoxやInputBox出せばそこで止まるぞ 止まったらEsc押すといい
509 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 22:37:15 ] >>508 はダメだった、すまね
510 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 22:53:25 ] じゃあSTOPでいいんじゃね? 止まったところでイミディエイトウィンドウで変数の内容を見たり書き換えたり自由にできる。 実行再開はCONT (嘘)
511 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 22:58:17 ] SendKeys "{Break}" ごめん嘘
512 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 01:58:50 ] debug.assert false じゃダメなん?
513 名前:505 mailto:sage [2009/01/13(火) 17:18:25 ] >>506 そのままでいいじゃん for i=1 to 5
514 名前:505 mailto:sage [2009/01/13(火) 17:20:27 ] >>506 途中で送信してしまった for i=1 to 5 if i=3 then stop endif next i みたいに。
515 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 20:24:40 ] 単に止めるだけなら for i=1 to 5 if i=3 then stop next i って書く。
516 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 21:12:47 ] 俺は処理が1行でもThenの後ろには書かない もちろん、If ... Then ... else ...もやらない
517 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 21:36:38 ] >>514 >>515 ありがとうございました。 stopで止まりました。
518 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 21:51:33 ] >>516 すいません そのわけを教えてください
519 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 22:15:21 ] クラスモジュールについてドップリ勉強できる書籍はないだろうか?
520 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 22:39:31 ] 勉強するほどのものじゃないんじゃ
521 名前:デフォルトの名無しさん [2009/01/13(火) 22:54:17 ] IPアドレスを 123.456.789.10 からx番目のIPアドレスを求めるような EXCEL関数かVB関数を探してるのですが、 そんな便利なものありませんか?
522 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 23:17:28 ] x番目って何よ?
523 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 23:23:36 ] Split("123.456.789.10", ".")(x)でいいんじゃねーの
524 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 23:25:33 ] >>522 すみません。 123.254.90.10から 1番目は、123.254.90.11 2番目は、123.254.90.12、 … という意味です。 上のIPアドレスの範囲も間違えて、あぁぁぁ、出直してきます。 失礼しました。。。。
525 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 23:28:29 ] 単なる足し算じゃね
526 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 00:02:10 ] うーん Sub test() For x = 1 To 10 A = Split("169.254.100.10", ".") A(3) = A(3) + x Debug.Print Join(A, ".") Next End Sub
527 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 01:48:01 ] 123.254.90.256とかやりそうな奴だな
528 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 20:38:53 ] 123.54.90.999 とかやってくれたら笑えるんだけど
529 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 00:29:42 ] OSはXP EXCELは2003です。 1.EXCEL上に別のEXCELシートを開くハイパーリンクを貼る 2.リンク先のシートが開くと同時に Private Sub Workbook_Open() Workbooks("Book1").Close End Sub みたいな感じで処理を走らせ、リンクで開いたシート自体を閉じる のような処理を入れるとシートが閉じられた後、EXCELがおかしくなります。 アクティブになっているEXCELシート以外のシートがアクティブにできないし、 新たに別のシートも開けなくなります。 ハイパーリンクとリンク先のシートを閉じる処理って同時には行えないんですかね?
530 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 01:01:19 ] >>529 イベント処理中でブックを閉じると実行中のインスタンスが開放されて暴走するんだっけ、 なんかそんなのがあったような気がする。
531 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 03:44:25 ] 開く方に Book1閉じるって書くしかないんじゃね
532 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 04:02:02 ] マクロ専用のブックを1つ用意して、それは閉じないようにするとか
533 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 18:17:44 ] すみません。質問させて下さい。 Excel2002のシートにラベルコントロールを貼付けました。 それをクリックすると、マウスカーソルがコントロールから離れるまで コントロール全体のサイズが若干大きくなってしまいます。 これは仕様でしょうか? もし対処方がありましたら、御教示下さい。
534 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 18:20:29 ] >>533 フォーカス位置を示す点線で囲まれた状態のことを言ってんなら、それは仕様
535 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 18:37:33 ] >>534 回答ありがとうございます。 ラベルのキャプションのテキストのサイズも変化するので、 フォーカスの点線ではないと思われます。 キャプションのテキストは通常状態ですと文字が滲んでおり、 クリックしてラベル全体が大きくなると文字がハッキリすることから、 ラベルをクリックしたときのサイズが正しいような気がします。
536 名前:デフォルトの名無しさん [2009/01/15(木) 19:37:27 ] 質問です。 book1をアクティブにした状態のまま、book2の特定のセルに書き込みをしたいのです。 で、 Windows("book2.xls").Cells(1, 2) = 1 とやったのですが、エラーが出ます。 正しくはどうやればいいのでしょうか?
537 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 22:06:50 ] × ブック.セル = 値 ○ ブック.シート.セル = 値
538 名前:デフォルトの名無しさん [2009/01/16(金) 18:33:12 ] すいません質問です。 VBAを使い年賀状を作成しなければならないのですが まず何からどうしたらよいかさえわかりませんm(_ _)m お願いします。汗
539 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 18:40:34 ] まずは作成しなければならない状況に陥らせた人に聞くべきだろう
540 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 18:48:41 ] マクロ記録しながらシートで作ればいいよ
541 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 19:00:27 ] この時期だと年賀状じゃなくて寒中見舞いだぞ
542 名前:536 [2009/01/16(金) 19:27:50 ] >>537 レスありがとうございます。 さっそくやってみました。 Windows("book1.xls").Sheets("Sheet1").Cells(1, 2) = 1 とやったのですが、やはりエラーが出ます。 なぜなのか、さっぱりわかりません。 しつこいようですが、教えて下さい<(_ _)>
543 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 20:03:41 ] ちょっとはぐぐれよ。オブジェクト名やメソッド名がおかしいだろ。 Sub test() Workbooks("book1.xls").Activate Workbooks("book2.xls").Worksheets("Sheet1").Cells(2, 1) = 1 End Sub
544 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 23:03:00 ] Excel 2000ですがマクロのステップ数が大きくなると、 ブックのファイルサイズがMB単位で肥大化して困ってますが、 皆さんどうしてますか?
545 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 23:17:27 ] そんな現象おきないのでどうもしてないが
546 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 23:24:57 ] どんだけ巨大なマクロを作ってるんだか。 ワークシートを操作するマクロを何度も走らせるとファイルが太る可能性はあるが、 それならシートの再構築でダイエットできるかもしれない。
547 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 23:27:09 ] 以下の構成で、hogeよりfugaにあるクラスを生成(new)しようとすると、 「ユーザ定義型は定義さていません」エラーとなります。 クラスでないモジュールの場合はそのまま呼び出せてます。 名前空間の問題と思われますが解決方法はありますでしょうか? hoge.xls → fuga.xla(参照設定)
548 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 23:31:21 ] >>546 マクロは相当な量です。 再構築は以前試した時は多少は改善しました。 でも、まっさらなブックにマクロのみ貼り付けても、 それ以上は小さくならなかったのでコレが限界かと。
549 名前:デフォルトの名無しさん [2009/01/16(金) 23:32:49 ] >>543 おおおおお、ありがとうございました!!
550 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 23:34:08 ] Variant型をできるだけ使わないようにするとか
551 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 00:30:00 ] >>547 support.microsoft.com/?scid=kb%3Ben-us%3B555159&x=14&y=9
552 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 10:08:15 ] シートをそれぞれ別ブックに保存する方法教えて。 保存名はシートの名前で。
553 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 11:38:51 ] それを手動でやる方法すら思いつかないの? 思いつくならそれをマクロの記録で録ることすら 思いつかないの?馬鹿なの?死ぬの?
554 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 11:44:17 ] >>552 ワークシートコレクションに対するループの中で (1) シートが1枚のブックを新規作成 (2) そこへシートをコピペ (3) 名前を付けて保存 (4) 新規ブックを閉じる を繰り返す とりあえず>>1 の★5の理由によりまずは自分で作ってみれ。方法は★6で。
555 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 13:44:33 ] >>551 ありがとうござました。 しかし各クラスごとに生成用のメソッドが必要とは... これがなければ理想的なんですが。
556 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 17:44:47 ] >>555 オブジェクト指向ではコンストラクタとデストラクタもクラスライブラリで用意することになってる。 というか勝手にインスタンス化するのは不可能だろ。どんだけメモリが必要かもわからんのに。
557 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 17:49:40 ] >>556 おまい判ってない。 ↓ではコンストラクタでなはく生成用のグローバルなメソッドを クラスの外に定義しろっていってんだよ。 オブジェクト指向以前の問題。 ttp://support.microsoft.com/?scid=kb%3Ben-us%3B555159&x=14&y=9
558 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 18:00:01 ] シートの表示倍率の値は取得できます?
559 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 18:44:18 ] >>556 Excelのclassのインスタンス化プロパティがPrivateかPublicNotCreatebleしか選べないから 外部から直接インスタンス化できないという仕様なのが問題で、コンストラクタは関係ない。
560 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 19:30:45 ] Withっていいな。Withでネストしまくったコード見ると癒される。
561 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 20:43:17 ] >>558 出来ますよ
562 名前:デフォルトの名無しさん [2009/01/18(日) 11:40:34 ] すみません、質問です。 エクセル2003のVBAについてです。 フォーム内に、セル(もしくは、エクセルのセルと同様の働きをするもの) の貼りつけることってできるのでしょうか?
563 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 12:15:21 ] >>562 ググれカス q.hatena.ne.jp/1148568634 これで良い?
564 名前:デフォルトの名無しさん [2009/01/18(日) 13:52:10 ] withを使った方が処理の速度は速くなりますか?
565 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 13:54:43 ] はい
566 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 13:59:02 ] EXCEL2003です。 VBAの処理の中でハイパーリンクをセルの書式設定にてロックを解除したセルに貼り、 その後シート全体をセルの選択が出来ない形で保護する つまりハイパーリンクのあるセル以外は押しても反応が無いよう保護する処理を作ったのですが、 ハイパーリンク以外のセルを押すとリンク先の画面が立ち上がってしまいます。 ハイパーリンクのあるセル以外は選択することも出来ないような画面を作りたいのですが、 何故上のような画面が出来てしまうのでしょうか?
567 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 14:34:48 ] > 何故上のような画面が出来てしまうのでしょうか? 保護により選択出来ないセル上で行ったクリック動作は 現在選択状態にあるセル上で行ったものとして扱われる 故に選択できるセルが1セルなら、どこをクリックしようとそのセルをpクリックした扱いになる 君の要望を実現するには、セル上のハイパーリンクではなく、 ボタンコントロールなどを使ってリンク先に飛ぶのが適切だろうな まあガンバレ
568 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 15:07:11 ] うん!僕がんばるよぉぉぉおおお!!
569 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 16:35:58 ] WindowsXP上でEXCEL2003を使用してます。 フォームに入力した内容を編集してシートに反映させるマクロを作成しているのですが、 マクロ実行中はシートをアクティブに出来ないのでマクロを終了させないと シートの変更内容の確認が出来ません。(テスト作業+デバッグの効率が悪い…) マクロ実行中(フォーム表示中)でも、シートのウィンドウをアクティブにしてシート選択が 可能になる方法はあるのでしょうか? よろしくおねがいします
570 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 17:58:08 ] >>569 VBEのウィンドウを最大化しなければいい
571 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 18:31:58 ] >>569 普通に見れるだろ
572 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 19:46:29 ] マクロを手動で実行ではなく、 (例)表列A1、A2に数値を入力したらリアルタイムに(マクロ側に計算式記述。例えば A1*A2)A3に結果を表示させようとする場合どうすればいいでしょう? 解説サイト見てもブック起動時実行ってのばかりしか見つからない…
573 名前:569 mailto:sage [2009/01/18(日) 19:48:39 ] もう少し作成しているマクロを説明すると、 ・マクロはsheet1上に置いたコマンドボックスから開始する(フォームが表示される) ・フォームに入力した内容が反映されるのはsheet2・sheet3 で、 ・フォームが表示されている状態ではExcelのウインドゥをアクティブにすることが出来ない ・なので、マクロで変更されている筈のsheet2・sheet3を開くことが出来ない という状態です。 >>570 VBEのウインドゥについては開いている状態でも閉じている状態でも上記の現象に変わりありません。 >>571 マクロがsheet1を編集しているなら普通に見れるとは思いますが、 編集しているのは背面にある他のシートなので…
574 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 19:48:44 ] >>572 ワークシート関数と同じ感覚? それならSelectionChangeで出来る。 シートごとに設定しないといかんけどね。
575 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 20:11:43 ] >>569 ,573 Modelessで呼べば良いだけでは? >>574 SelectionChangeではなくChangeだろ SelectionChangeは選択セルが変更されたとき Changeはセルの値が変更(入力、削除など)されたとき それと対象セルと処理内容が同じならシート毎に設定する必要も無い ブック単位、あるいは全ブックを対象に一括処理する方法もある
576 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 20:20:07 ] >>575 vbModelessを付けてフォームを開いたところ上手くいきました、 ありがとうございます。
577 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 21:34:00 ] >>574 多分functionとrangeを使ってどうにかこうにか書くのだと思うのですが上手くいかない
578 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 21:36:51 ] >>577 ヒント Workbook_SheetChange Application.EnableEvents = False
579 名前:教えてください [2009/01/20(火) 00:51:55 ] 質問です。初心者です。 複数のブックに散らばっている同じ名前のシートを、1ブックの1シートにまとめたいのですがうまくいきません。 msgbox "5"までは表示されるので、次の行がおかしいのだと思います。 「motosheet.」の記述を消すとマクロ自体は動作するのですが、コピー元のブックではなくてコピー先のブックを参照してしまいます。 なぜか、rangeの親オブジェクトを記述すると「実行時エラー 1004 アプリケーション定義またはオブジェクト定義エラー」となります。 1行前はrangeの親オブジェクトを記述しても問題ないのに・・・ 本当に困っています。よろしくお願いします。
580 名前:教えてください [2009/01/20(火) 00:52:34 ] Private Sub CommandButton2_Click() Application.ScreenUpdating = False Dim motobookspath As Variant Dim motobookpath As Variant Dim 先ブック入力済み最終行番号 As Long Dim データ貼り付け開始行番号 As Long Dim sakirange As Range Dim motorange As Range Dim motobook As Workbook Dim motosheet As Worksheet Dim 入力済み最終行番号 As Long motobookspath = Application.GetOpenFilename(filefilter:="Exclブック,*.xls", MultiSelect:=True) MsgBox "1"
581 名前:教えてください [2009/01/20(火) 00:53:00 ] For Each motobookpath In motobookspath 先ブック入力済み最終行番号 = ThisWorkbook.Worksheets("データ").Range("i1").End(xlDown).Row データ貼り付け開始行番号 = 先ブック入力済み最終行番号 + 1 MsgBox "2" Set sakirange = ThisWorkbook.Worksheets("データ").Cells(データ貼り付け開始行番号, 1) MsgBox "3" Set motobook = Workbooks.Open(Filename:=motobookpath) Set motosheet = motobook.Worksheets("データ") MsgBox "4" 入力済み最終行番号 = motosheet.Range("i1").End(xlDown).Row MsgBox "5" Set motorange = motosheet.Range("a2", Cells(入力済み最終行番号, 19)) motorange.Copy Destination:=sakirange motobook.Close savechanges:=True Next Application.ScreenUpdating = ture End Sub
582 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 01:06:50 ] Set motorange = motosheet.Range("a2", Cells(入力済み最終行番号, 19)) → Set motorange = motosheet.Range("a2", motosheet.Cells(入力済み最終行番号, 19))
583 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 06:51:42 ] 巷ではこういうコードが普通にあんのかね。
584 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 11:38:28 ] 誰もがプログラミングの専門家じゃないからね。 入門書を斜め読みして断片的な知識で「動けばいい」程度のコードを書いてる人のが圧倒的に多いよ。
585 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 19:28:45 ] 超初心者で申し訳ありませんが・・・ エクセルのシートにある数字と文字列をCSVファイルに下記のように出力したいです。 (エクセル) 123,鈴木 1013,田中 (出力) 番号,名前 0123,鈴木 1013,田中 自分で作ってみたところ、下記のように文字列になってしまいます。 (出力) ”番号”,”名前” ”0123”,”鈴木” ”1013”,”田中” となってしまいます。 どのようにすれば良いのでしょうか。 よろしくお願い致します。
586 名前:579 [2009/01/20(火) 21:14:18 ] >>582 うぉー!! ありがとうございます!!!! 2日悩み続けてました。CellsオブジェクトもThisworkbookの子オブジェクトとして認識されて しまっていたのですね。 でも悩みに悩んでいるといろんなことを考えるから、勉強にはなりますよね。 >>583 もっと違った記述方法があるんですかね?教えてください。
587 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 21:48:51 ] >>585 どんなプログラムを作ったの?
588 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 22:07:54 ] >>579 まず変数名に日本語を使うところからダメだわ。
589 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 22:14:47 ] >>588 それは場合によりけりだな
590 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 22:21:17 ] 場合というか,使われ方とか規模とか書く人とかによるな どちらかに決めて使い分けはしない
591 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 00:29:10 ] 俺も変数名に日本語使うの抵抗あるけど 日本語使うとコードが分りやすくなるような気もするから 使おうかなとも思うけど… でも抵抗あるんだよなー
592 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 00:39:52 ] 英語だと既存の関数名、メソッド、プロパティ、その他予約後などと被る時、 ローマ字で書くのは嫌いだから日本語で書いちゃう
593 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 01:02:53 ] >>592 確かに! 日本語で書けば被らないな てことは日本語で書いたほうが合理的だな
594 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 05:44:10 ] ActiveXコントロールのテキストボックスをワークシート上で使う場合、 Heightを文字の大きさの2倍以上にしないと、文字が崩れますが 解決法はありますか?
595 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 07:15:08 ] 日本語は入力が面倒臭いのが難点。
596 名前:デフォルトの名無しさん [2009/01/21(水) 20:02:04 ] Excel2003にて、インターネット上からXMLを取得して利用するツールをつくって いるところなのですが、文字化けを起こします。 Dim get_xml As Object Set get_xml = CreateObject("MSXML2.DOMDocument.3.0") get_xml.async = False get_xml.Load (src_url) 抜粋するとこのようなコードです。 このときに、 ‖ この文字だけが、半角?に変換されてしまいます。get_xml.Load した直後で既に?に変わってしまっているのですが、どうすれば解消するでしょうか? 取得するxmlはUTF-8で、IE等のブラウザから見ると正常に‖と見えます。 よろしくおねがいします。