EXCELで「形式を選択して貼り付け」するための記述を教えてください

解決


ぷぷぷ  2006-05-15 19:39:19  No: 95399

VB6.0でEXCELを扱おうとしています。
元ファイルのある範囲から別ファイルに「値だけ」をコピーしたいのですが
記述方法が良く判りません。
ただのペーストは出来るのですが、どなたかご教授いただけると幸いです。
現在はこんな感じです

gxlSheet1.Range(Cells(10, 1), Cells(57, 17)).Copy '範囲をコピー

xlSheet2.Activate
xlSheet2.Cells(1, 1).Select
xlSheet2.Paste

よろしくお願いします。


もげ  2006-05-15 20:35:33  No: 95400

PasteSpecialメソッドでしょうか。

.PasteSpecial Paste:=xlValues, Operation:=xlNone,SkipBlanks:=False, Transpose:=False

そういうのは、Excelで「ツール」→「マクロ」→「新しいマクロの記録」
を使って調べるといいですよ。


ぷぷぷ  2006-05-15 21:55:44  No: 95401

ありがとうございます。
WEBでサーチするとマクロについては色々載っており、Pastespecialについてもありました。
しかし、このまま記述すると「Paste:=」 の部分が”コンパイルエラー:名前付き引数が見つかりません”になってしまうのです。
なので、VBから扱う場合の記述方法はどうするのが正しいのかと思い、質問させていただいた次第であります。
よろしくお願いします。


Blue  2006-05-15 22:39:33  No: 95402

VB6ではExcelの参照設定をしないと
xlValues や xlNone がどのような値なのかワカリマセン。

どうしても CreateObject でExcelを扱いたいならば、各定数がいくつなのかを
VB6に教えてあげましょう。

で、xlValues や xlNone がいくつなのかは、Excel VBE の「オブジェクトブラウザ」を開き、
検索してみてください。

見つかると

Const xlValues = -4163 (&HFFFFEFBD)

のような記述が見つかります。
それを、VB6のコードに記述して使ってください。
(xlNoneはご自分で検索してください。)


Blue  2006-05-15 22:41:19  No: 95403

あ、
> 名前付き引数が見つかりません
の方でした。

よくわからないけど、名前付き引数を使わない方法で書けばよいのでは?
(これも参照設定すれば回避できるかな。)


LESIA  2006-05-15 23:23:37  No: 95404

> WEBでサーチするとマクロについては色々載っており、Pastespecialについてもありました。
WEBよりも、ヘルプで調べた方がいいですよ。
ヘルプによりと、PasteSpecialメソッドは、Rangeオブジェクト用とWorksheetオブジェクト用の
2種類あって、Pasteを引数に持つのはRangeオブジェクト用です。

また、Activateや.Selectは、不要です。
xlSheet2.Cells(1, 1)..PasteSpecial Paste:=xlValues, Operation:=xlNone,SkipBlanks:=False, Transpose:=False


ぷぷぷ  2006-05-19 20:35:37  No: 95405

事情により遅くなりましてすみません。
実はまだPastespecialはうまく動作出来ていないのですが、もっと調べてみようと思います。
アドバイスいただきました皆さん、どうもありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加