tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル縦書きテキストボックスを形式を選択して貼付けする方法
記事No12857
投稿日: 2008/08/06(Wed) 11:34
投稿者ぴょん太
いつもお世話になっております。
現在、VB6でExcel(※2000です)の操作が出来るようにしてるのですが、
行き詰ってしまった為、投稿させて頂きました。

手順としては、
@縦書きテキストボックス作成
A縦書きテキストボックスに文字入力
B入力した縦書きテキストボックスをコピー
Cセルを指定し(※A1:A1)、コピーした縦書きテキストボックスを『形式を選択して貼付け』する
D図(拡張メタファイル)を指定する
E作成を行った図のサイズと角度を設定する

初心者な為、調べてみたもののセル上の文字をコピーして貼り付けたりすることは
わかったのですが、図形からテキスト入力を行って、
形式をかえて・・・という方法がわかりません。

宜しくお願い致します。

[ツリー表示へ]
タイトル【追記】 縦書きテキストボックスを形式を選択して貼付けする方法
記事No12858
投稿日: 2008/08/06(Wed) 15:52
投稿者ぴょん太
   『形式を選択して貼り付ける』場合の引数の付け方でエラーが発生してしまいます。
 
    xlsSheet.Range("A1:A1").PasteSpecial Format:="図 (拡張メタファイル)"

  エラー:名前付き引数が見つかりません
  他は、対応が出来たのですが、ここだけがうまくいきません。

  アドバイスお願い致します。

[ツリー表示へ]
タイトルRe: 【追記】 縦書きテキストボックスを形式を選択して貼付けする方法
記事No12859
投稿日: 2008/08/06(Wed) 16:39
投稿者花ちゃん
>     xlsSheet.Range("A1:A1").PasteSpecial Format:="図 (拡張メタファイル)"
>
>   エラー:名前付き引数が見つかりません
>   他は、対応が出来たのですが、ここだけがうまくいきません。

Excel の VBA のヘルプで、PasteSpecial メソッド について調べて見て下さい。
それでも解らなければ、その部分のマクロを取ってそのマクロを見て下さい。
それでもまだ解らないなら、そのマクロを投稿して見て下さい。

[ツリー表示へ]
タイトルRe^2: 【解決】 縦書きテキストボックスを形式を選択して貼付けする方法
記事No12862
投稿日: 2008/08/06(Wed) 18:07
投稿者ぴょん太
花ちゃん様、ダンボ様
返信ありがとうございます。

無事に解決致しました。

Range オブジェクトの PasteSpecial メソッド
 ※クリップボードのデータを、指定されたセル範囲に貼り付けます。
Worksheet オブジェクトの PasteSpecial メソッド
※指定された形式で、クリップボードの内容をシートに貼り付けます。
 他のアプリケーションからデータを貼り付けるときや、
 あるいは特別な形式でデータを貼り付ける場合に使います。
の用途を理解していませんでした。

D図(拡張メタファイル)を指定する
xlsSheet.PasteSpecial Format:="図 (拡張メタファイル)"
することで出来ました。

下記のアドレスを参照しました
http://msdn.microsoft.com/ja-jp/library/cc329896.aspx#

[ツリー表示へ]
タイトルRe: 【追記】 縦書きテキストボックスを形式を選択して貼付けする方法
記事No12860
投稿日: 2008/08/06(Wed) 16:43
投稿者ダンボ
>     xlsSheet.Range("A1:A1").PasteSpecial Format:="図 (拡張メタファイル)"
>   エラー:名前付き引数が見つかりません

こんにちは。
質問見てから、ググって見ました。わかったことは、
・「名前付き引数が見つかりません」ってエラーはメソッドに予定された引数ではないってこと
  この場合、Format:=は使えないと言うことです。
・マクロの記録でこう書かれたから、コードで動かせる筈だ、と思うでしょうが、そうでもないらしい。
 「マクロの記録」結果と「実行可能コード」は微妙に違うことがある?(半信半疑)
 (#)VBAのコードとVBから呼ぶExcelコードでは小差があるってことかな?

で、アドバイスはPasteSpecialの全引数一覧を入手して、妥当な引数を調べることですね。

[ツリー表示へ]
タイトルRe^2: 【追記】 縦書きテキストボックスを形式を選択して貼付けする方法
記事No12861
投稿日: 2008/08/06(Wed) 17:32
投稿者花ちゃん
>  「マクロの記録」結果と「実行可能コード」は微妙に違うことがある?(半信半疑)
>  (#)VBAのコードとVBから呼ぶExcelコードでは小差があるってことかな?

今回の場合使用しているオブジェクトが違うから引数も違ってくるかと。
Worksheets のPasteSpecial メソッドを Range オブジェクトの PasteSpecial メソッドを
使っているから、引数にFormat がないのでエラーがでているのだと思いますよ。
Worksheets のPasteSpecial メソッドを 使えば問題ないはずです。

[ツリー表示へ]
タイトル【解決】 縦書きテキストボックスを形式を選択して貼付けする方法
記事No12863
投稿日: 2008/08/06(Wed) 18:13
投稿者ぴょん太
花ちゃん様
ありがとうございます。

下記の内容で理解していなかったことがわかりました。

> 今回の場合使用しているオブジェクトが違うから引数も違ってくるかと。
> Worksheets のPasteSpecial メソッドを Range オブジェクトの PasteSpecial メソッドを
> 使っているから、引数にFormat がないのでエラーがでているのだと思いますよ。
> Worksheets のPasteSpecial メソッドを 使えば問題ないはずです。

xlsSheet.PasteSpecial Format:="図 (拡張メタファイル)"
で、無事正しく表示されました。

[ツリー表示へ]