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


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

Excel VBA質問スレ Part9



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等のブラウザから見ると正常に‖と見えます。
よろしくおねがいします。






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

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

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