Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9447 / 13646 ツリー ←次へ | 前へ→

【27251】Property Letプロシージャ・・・? ひな 05/8/3(水) 15:31 質問[未読]
【27253】Re:Property Letプロシージャ・・・? つん 05/8/3(水) 15:45 発言[未読]
【27255】Re:Property Letプロシージャ・・・? ひな 05/8/3(水) 15:59 質問[未読]
【27256】Re:Property Letプロシージャ・・・? つん 05/8/3(水) 16:15 回答[未読]
【27257】Re:Property Letプロシージャ・・・? ひな 05/8/3(水) 16:27 質問[未読]
【27258】ごめんなさい(SOSです!)+質問^^; つん 05/8/3(水) 16:49 発言[未読]
【27259】Re:ごめんなさい(SOSです!)+質問^... Jaka 05/8/3(水) 16:57 発言[未読]
【27260】Re:ごめんなさい(SOSです!)+質問^... ひな 05/8/3(水) 18:13 質問[未読]
【27261】Re:ごめんなさい(SOSです!)+質問^... つん 05/8/3(水) 19:48 発言[未読]
【27273】Re:ごめんなさい(SOSです!)+質問^... ひな 05/8/4(木) 8:49 回答[未読]
【27276】Re:ごめんなさい(SOSです!)+質問^... Jaka 05/8/4(木) 9:33 回答[未読]
【27278】Re:ごめんなさい(SOSです!)+質問^... つん 05/8/4(木) 9:50 発言[未読]
【27279】Re:ごめんなさい(SOSです!)+質問^... ponpon 05/8/4(木) 9:57 発言[未読]
【27280】Re:ごめんなさい(SOSです!)+質問^... Jaka 05/8/4(木) 10:09 発言[未読]
【27282】Re:ごめんなさい(SOSです!)+質問^... つん 05/8/4(木) 10:17 お礼[未読]
【27283】Re:ごめんなさい(SOSです!)+質問^... Jaka 05/8/4(木) 10:19 発言[未読]
【27289】Re:ごめんなさい(SOSです!)+質問^... つん 05/8/4(木) 12:57 お礼[未読]
【27293】Re:ごめんなさい(SOSです!)+質問^... Jaka 05/8/4(木) 13:36 発言[未読]
【27281】Re:ごめんなさい(SOSです!)+質問^... ひな 05/8/4(木) 10:11 回答[未読]
【27284】Re:ごめんなさい(SOSです!)+質問^... Jaka 05/8/4(木) 10:23 回答[未読]
【27286】Re:ごめんなさい(SOSです!)+質問^... ひな 05/8/4(木) 11:47 回答[未読]
【27290】Re:ごめんなさい(SOSです!)+質問^... Jaka 05/8/4(木) 13:12 発言[未読]
【27291】Re:ごめんなさい(SOSです!)+質問^... ひな 05/8/4(木) 13:14 回答[未読]
【27292】Re:ごめんなさい(SOSです!)+質問^... Jaka 05/8/4(木) 13:20 発言[未読]

【27251】Property Letプロシージャ・・・?
質問  ひな  - 05/8/3(水) 15:31 -

引用なし
パスワード
   指定されたセル範囲の値を設定するため
 With 場所
    .value(xlRangeValueXMLSpreadsheet) = .value(xlRangeValueXMLSpreadsheet)
 End With

としたら、Excel2002ではちゃんと動くのですが、Excel2000で実行すると
「エラー番号451:Property Letプロシージャが定義されていない」旨の
メッセージが出ます。
どうすればよろしいでしょうか?

【27253】Re:Property Letプロシージャ・・・?
発言  つん E-MAIL  - 05/8/3(水) 15:45 -

引用なし
パスワード
   こんにちは^^
▼ひな さん:
>指定されたセル範囲の値を設定するため
> With 場所
>    .value(xlRangeValueXMLSpreadsheet) = .value(xlRangeValueXMLSpreadsheet)
> End With
>
>としたら、Excel2002ではちゃんと動くのですが、Excel2000で実行すると
>「エラー番号451:Property Letプロシージャが定義されていない」旨の
>メッセージが出ます。
>どうすればよろしいでしょうか?

Excel2002以降対応なので、2000ではどうしようもないかもしれません
私も詳しくないんですが

http://support.microsoft.com/default.aspx?scid=kb;ja;285891

このへん読んでみたら・・・・

【27255】Re:Property Letプロシージャ・・・?
質問  ひな  - 05/8/3(水) 15:59 -

引用なし
パスワード
   つんさん、こんにちは!

返信ありがとうございます。
やっぱりムリなんですねぇ。。。

では、度々質問して申し訳ないんですが・・・
今、book1.xlsの指定されたセル範囲の値をbook2.xlsの特定場所に
設定するため
 With book2.xlsの特定場所
    .value(xlRangeValueXMLSpreadsheet) = .value(xlRangeValueXMLSpreadsheet)
 End With
しようと思っていたのですが、他にやり方があったら教えて
下さい!値/書式ともに設定したいんです。

【27256】Re:Property Letプロシージャ・・・?
回答  つん E-MAIL  - 05/8/3(水) 16:15 -

引用なし
パスワード
   ▼ひな さん:
>では、度々質問して申し訳ないんですが・・・
>今、book1.xlsの指定されたセル範囲の値をbook2.xlsの特定場所に
>設定するため
> With book2.xlsの特定場所
>    .value(xlRangeValueXMLSpreadsheet) = .value(xlRangeValueXMLSpreadsheet)
> End With
>しようと思っていたのですが、他にやり方があったら教えて
>下さい!値/書式ともに設定したいんです。

えーっと、
Book1の指定されたセル範囲を、Book2の特定場所に
「コピー」→「型式を指定して貼り付け」→「値と数値の書式」とか「罫線を除くすべて」
とかではどうでしょう?

.value(xlRangeValueXMLSpreadsheet) = .value(xlRangeValueXMLSpreadsheet)

これが何をしてるのか、私にはよくわからないので、ひなさんがされたい処理と違うかもしれませんが・・・

【27257】Re:Property Letプロシージャ・・・?
質問  ひな  - 05/8/3(水) 16:27 -

引用なし
パスワード
   つんさん

>えーっと、
>Book1の指定されたセル範囲を、Book2の特定場所に
>「コピー」→「型式を指定して貼り付け」→「値と数値の書式」とか「罫線を除くすべて」
>とかではどうでしょう?
>
>.value(xlRangeValueXMLSpreadsheet) = .value(xlRangeValueXMLSpreadsheet)
>
>これが何をしてるのか、私にはよくわからないので、ひなさんがされたい処理と違うかもしれませんが・・・

説明不足でごめんなさい。
えっと、複数のブックがあって、各ブックの特定のセル範囲の値を
別ブックにコピーしたいんです。
しかも、参照元となるブックは開かずに、コピー先のブックのみ
開いて。

で、そのために
  With コピー先のブックの特定のセル範囲
    .formula=参照元のブックの特定のセル範囲
    .value=.value
  end with
としたら別ブックにコピーできたことにはできたのですが、書式が
変わってしまったんです。(文字列→時間形式に)
で、どうしたらいいのかなぁと思っているところです。

コピー&ペーストを試したら問題ないのですが、これって参照元の
ブックを開かないとダメなんですよねぇ?

【27258】ごめんなさい(SOSです!)+質問^^...
発言  つん E-MAIL  - 05/8/3(水) 16:49 -

引用なし
パスワード
   ▼ひな さん:

えっと・・・ごめんなさい。
私が質問です。

>えっと、複数のブックがあって、各ブックの特定のセル範囲の値を
>別ブックにコピーしたいんです。
>しかも、参照元となるブックは開かずに、コピー先のブックのみ
>開いて。
>
>で、そのために
>  With コピー先のブックの特定のセル範囲
>    .formula=参照元のブックの特定のセル範囲
>    .value=.value
>  end with

これで、参照元ブックを開かずにコピー出来るのですか!
「参照元のブックの特定のセル範囲」これはどういう形で指定するのですか?
すみません・・・こういうことが出来るの知りませんでした。
試行錯誤してみたけど、イマイチわからん・・・・

>としたら別ブックにコピーできたことにはできたのですが、書式が
>変わってしまったんです。(文字列→時間形式に)
>で、どうしたらいいのかなぁと思っているところです。

すみません。上記がわかってないんで・・・
達人な先輩方のご出馬をお待ちしましょう。
役に立たずにすんません。

【27259】Re:ごめんなさい(SOSです!)+質問...
発言  Jaka  - 05/8/3(水) 16:57 -

引用なし
パスワード
   ここと同じですね!
HNが違うけど。
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=27218;id=excel

一応、試してみてください。
表示形式までは、変更できないと思うけど.....。

【27260】Re:ごめんなさい(SOSです!)+質問...
質問  ひな  - 05/8/3(水) 18:13 -

引用なし
パスワード
   つんさん&Jakaさん

>ここと同じですね!
>HNが違うけど。
>http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=27218;id=excel
>
>一応、試してみてください。
>表示形式までは、変更できないと思うけど.....。

お二人とも、いろいろとありがとうございます。
で、Jakaさんに質問ですが・・・
「.Value=.Valueとしないで、コピー後、値だけ貼り付」
とありますが、参照元のファイルを開かずコピー
するにはどうしたらよいのでしょうか?

【27261】Re:ごめんなさい(SOSです!)+質問...
発言  つん E-MAIL  - 05/8/3(水) 19:48 -

引用なし
パスワード
   >「.Value=.Valueとしないで、コピー後、値だけ貼り付」
>とありますが、参照元のファイルを開かずコピー
>するにはどうしたらよいのでしょうか?

んー、それは無理だと思います。
開いちゃダメなんですか?

【27273】Re:ごめんなさい(SOSです!)+質問...
回答  ひな  - 05/8/4(木) 8:49 -

引用なし
パスワード
   つんさん

>>「.Value=.Valueとしないで、コピー後、値だけ貼り付」
>>とありますが、参照元のファイルを開かずコピー
>>するにはどうしたらよいのでしょうか?
>
>んー、それは無理だと思います。
>開いちゃダメなんですか?

う〜ん、参照元ファイルが50個くらいあるので
開かないでやりたいんですよねぇ・・・
無理かぁ。。。

【27276】Re:ごめんなさい(SOSです!)+質問...
回答  Jaka  - 05/8/4(木) 9:33 -

引用なし
パスワード
   おはようございます。

▼つん さん:
 略
>んー、それは無理だと思います。
>開いちゃダメなんですか?
うっ!ううううう!
つんさんも解ってくれへん。

関数を入れたセルをコピーして、同じ所に値だけ貼り付ければいいです。
ただ、書式は標準のままだから、セルをいじったりすると、時間に変換されてしまうかもしれないので(未確認)、文字列などに直しておいた方が良いかも知れません。


  With コピー先のブックの特定のセル範囲
    .Formula = 参照元のブックの特定のセル範囲
    .Copy
    .PasteSpecial (xlPasteValues)
  End With

【27278】Re:ごめんなさい(SOSです!)+質問...
発言  つん E-MAIL  - 05/8/4(木) 9:50 -

引用なし
パスワード
   >うっ!ううううう!
>つんさんも解ってくれへん。
あ・・・ごめん・・・
やって・・・

>  With コピー先のブックの特定のセル範囲
>    .Formula = 参照元のブックの特定のセル範囲
>    .Copy
>    .PasteSpecial (xlPasteValues)
>  End With

これの、
「.Formula = 参照元のブックの特定のセル範囲」
これって、どういう形で書けばいいのかわからんくて、自分で検証出来なかったから^^;
どう書けばいいの?(めちゃ初心者質問?上でも質問してたんだけど教えてくれないんだもん〜

【27279】Re:ごめんなさい(SOSです!)+質問...
発言  ponpon  - 05/8/4(木) 9:57 -

引用なし
パスワード
   おはようございます。

このことでしょうか?

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=25567;id=excel

【27280】Re:ごめんなさい(SOSです!)+質問...
発言  Jaka  - 05/8/4(木) 10:09 -

引用なし
パスワード
   えっと、表示形式を文字列にしたA1:C10に下のように書いて、
bbb.xlsと言う名で保存したとします。このブックは閉じます。

A    B    C
35:0    35:0    35:0  ←ここ1行目ね
35:0    35:0    35:0
35:0    35:0    35:0
35:0    35:0    35:0
35:0    35:0    35:0
35:0    35:0    35:0
35:0    35:0    35:0
35:0    35:0    35:0
35:0    35:0    35:0
35:0    35:0    35:0

で、別ブックに下のように書いてやれば.....。
関数って、ただ別ブックのセルを参照しているだけです。
参照のパスは自分の環境に合わせて変更してください。

  With Range("A1:C10")
    .Formula = "='C:\Documents and Settings\JPS\デスクトップ\[bbb.xls]Sheet1'!A1"
    '.Copy
    '.PasteSpecial (xlPasteValues)
  End With

っちゅうことです。

【27281】Re:ごめんなさい(SOSです!)+質問...
回答  ひな  - 05/8/4(木) 10:11 -

引用なし
パスワード
   おはようございます。

すご〜い。出来ました!
書式は
 .NumberFormatLocal=〜
を使用して予め設定しておくことにしました。

ホントにいろいろと有難うございます。
まだまだ勉強不足で反省。。。

今日もこれからまた違うマクロ作成を頼まれる
と思うので、また質問と思います。
今後とも宜しくお願いします!

【27282】Re:ごめんなさい(SOSです!)+質問...
お礼  つん E-MAIL  - 05/8/4(木) 10:17 -

引用なし
パスワード
   ponponさん & Jakaさん

私もわかりました。

.Value = "='C:\文書\[A.xls]Sheet1'!A1"

この部分の書き方がわからんかった^^;
人様の質問で勉強させて頂きました。
どうもありがとう^^

【27283】Re:ごめんなさい(SOSです!)+質問...
発言  Jaka  - 05/8/4(木) 10:19 -

引用なし
パスワード
   ついでにここも、
[#7197]

Excel4Macroもセル参照と同じで、参照先のセルが空だと「0」が返ってくるので注意。

【27284】Re:ごめんなさい(SOSです!)+質問...
回答  Jaka  - 05/8/4(木) 10:23 -

引用なし
パスワード
   ▼ひな さん:
>書式は
> .NumberFormatLocal=〜
>を使用して予め設定しておくことにしました。
これって、関数を入れる前に文字列にしたら、関数を入れても関数で無くただの文字になっちゃうので、返り値がありませんよ。
値だけ貼り付けた後に、文字列にしてください。

【27286】Re:ごめんなさい(SOSです!)+質問...
回答  ひな  - 05/8/4(木) 11:47 -

引用なし
パスワード
   ▼Jaka さん:

>>書式は
>> .NumberFormatLocal=〜
>>を使用して予め設定しておくことにしました。
>これって、関数を入れる前に文字列にしたら、関数を入れても関数で無くただの文字になっちゃうので、返り値がありませんよ。
>値だけ貼り付けた後に、文字列にしてください。

文字列じゃなくて、コピーの前に
 .NumberFormatLocal = "G/標準"
としたらうまくいきましたが・・・
(値だけ貼り付けた後に文字列にするとダメでした。)

【27289】Re:ごめんなさい(SOSです!)+質問...
お礼  つん E-MAIL  - 05/8/4(木) 12:57 -

引用なし
パスワード
   Jakaさん〜

勉強になります。ありがとう〜
自分で使うシーンはなさそうだけど・・
実戦で使わないと忘れそうだわ!

ところで、書き込みの種類

ひなさんが 「答」で
Jakaさんが 「礼」になってる。。。。

【27290】Re:ごめんなさい(SOSです!)+質問...
発言  Jaka  - 05/8/4(木) 13:12 -

引用なし
パスワード
   ▼ひな さん:
>文字列じゃなくて、コピーの前に
> .NumberFormatLocal = "G/標準"
>としたらうまくいきましたが・・・
コピー前と言うより、関数を入れた時は、"G/標準"じゃないと関数は動いてくれません。


>(値だけ貼り付けた後に文字列にするとダメでした。)
本当ですね!タイムラグが発生しているみたいですね?
こんな感じにDoEventsを入れてください。
範囲が大きいなら2つ3つ入れるとか...。
範囲がでかすぎるとどうなる未確認ですが....。
一番最後に文字列にした方がいいのかもしれません。

  With コピー先のブックの特定のセル範囲
    .NumberFormatLocal = "G/標準"  '←セルが文字列のままだとまずいから、標準にもどす。
    .Formula = 参照元のブックの特定のセル範囲
    .Copy
    .PasteSpecial (xlPasteValues)
    DoEvents
    .NumberFormatLocal = "@"
  End With

貼り付けた後に、"G/標準"のままだとセルを編集しようとしたり、セルをWクリックすると勝手に時間に変換されてしまいます。

【27291】Re:ごめんなさい(SOSです!)+質問...
回答  ひな  - 05/8/4(木) 13:14 -

引用なし
パスワード
   Jaka さん:

>本当ですね!タイムラグが発生しているみたいですね?
>こんな感じにDoEventsを入れてください。
>範囲が大きいなら2つ3つ入れるとか...。
>範囲がでかすぎるとどうなる未確認ですが....。
>一番最後に文字列にした方がいいのかもしれません。
>
>  With コピー先のブックの特定のセル範囲
>    .Formula = 参照元のブックの特定のセル範囲
>    .Copy
>    .PasteSpecial (xlPasteValues)
>    DoEvents
>    .NumberFormatLocal = "@"
>  End With
>
>貼り付けた後に、"G/標準"のままだとセルを編集しようとしたり、セルをWクリックすると勝手に時間に変換されてしまいます。

ほんとだぁ〜!
Wクリックしたら勝手に時間になっちゃいました。

で、早速Jakaに教わった通りにしてみたら見事できました!
Jakaさん、すごいっ。
ただ、再度マクロ起動したら、書式が文字列のままで
関数が貼り付けられちゃったので、formula〜の前の行に
  .NumberFormatLocal = "G/標準"
を入れましたが、これでいいんですよね!?

ホントにホントに助かりました。
ありがとうございま〜す。

追伸:
 「DoEvents」なんて初めて!
 ヘルプ読んだけどまだ理解できてないひなでした。。。
 これから勉強します。

あっ、返信を書き終わったらJakaさんも同じこと
書いてました!(標準に戻す。)
よかったぁ〜、これで完璧だ!

【27292】Re:ごめんなさい(SOSです!)+質問...
発言  Jaka  - 05/8/4(木) 13:20 -

引用なし
パスワード
   すみません。

DoEventsなくてもちゃんと動きました。
単に標準に戻し忘れて、文字列のままだったみたいでした。
チョンボだぁ!

でも、DoEventsは、入れておいたほうが良いです。

【27293】Re:ごめんなさい(SOSです!)+質問...
発言  Jaka  - 05/8/4(木) 13:36 -

引用なし
パスワード
   ▼つん さん:
>ところで、書き込みの種類
>
>ひなさんが 「答」で
>Jakaさんが 「礼」になってる。。。。
訂正の訂正で、間違えちゃったみたいです。
でも、もう消しちゃったも〜ん。[チョキ]

しっかり見ているんですね!(^_^;)

9447 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free