HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
1210
しまごろうエクセルのコピー方法7解決


しまごろう

リンク

2009/12/10(Thu) 18:53:25|NO.29219

エクセルで同じフォーマットの書類を複数作るための
ソフトを作ろうとしています。

1枚目の書類ができたら新しいワークシートを作成し、
前のシートをコピーして貼り付けたいのですが、
コピーの方法がわかりませんでした。

もし、知っていたら教えていただけないでしょうか?
現在のスクリプトはこんな感じです。(一部抜粋)


count=1 newcom xlApp, "Excel.Application" xlApp("Visible") = 1; Excelウィンドウは非表示 xlApp("DisplayAlerts") = 0; 警告メッセージを表示させない xlBooks = xlApp("Workbooks") ; Workbooks コレクション取得 xlBooks->"Open" fname ; 指定ファイルを開く xlBook = xlBooks("Item",myname) ; book取得 xlSheet = xlBook("Worksheets","Sheet1") ; Sheet取得 button gosub "シート追加",*sheet stop *sheet cunt=cunt+1 xlSheets = xlBook("Sheets") xlSheets -> "Add" xlSheet = xlBook("Worksheets","Sheet"+count) ; Sheet取得 return
よろしくお願いします



この記事に返信する


KA

リンク

2009/12/10(Thu) 23:34:46|NO.29225

親切な人もいますが、聞く場所を間違っている気がします。



Hatter

リンク

2009/12/11(Fri) 00:22:58|NO.29226

> 親切な人もいますが、聞く場所を間違っている気がします。

そうなのかな?COMの操作内容もぎりぎりHSPの範囲かも。
でも確かに今回のCOMの操作はどちらかというと
使うソフト(Excel)に依存する話なので、ここよりもMicroSoft系の方がいいかも。

ボクはExcelを良く知らないので、無責任ですが無回答。



しまごろう

リンク

2009/12/11(Fri) 01:00:02|NO.29227

KAさん
Hatterさん

ありがとうございます。
いままでHSP関係のページを探していて
MicroSoft系のページをまだ見ていませんでした。
その方面でもう少し探してみようと思います。



Kpan

リンク

2009/12/11(Fri) 21:55:28|NO.29231

質問で提示されてるコードはHSP3のものなので、
聞く場所は別に問題ないような?

↓を参照あれ〜。
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/mar05/hey0330.mspx



しまごろう

リンク

2009/12/12(Sat) 13:58:51|NO.29234

Kpanさん

ありがとうございます。
リンク先のページやVBなどを参考にして


*sheet count=count+1 xlSheets = xlBook("Sheets") xlSheets ->"Add" xlSheets = xlSheet("copy") xlSheet = xlBook("Worksheets","Sheet"+count) ; Sheet取得 return
としたところ
コピー自体はうまくいきました。
しかし、コピー先が新しいブックになってしまいました。
解決法はVBなどではあるのですが、それをうまくhspに置き換えができません。
もう少しだとは思うのですが…



Kpan

リンク

2009/12/12(Sat) 14:27:52|NO.29236

提示したマイクロソフトのページのものを元にすると
こういう感じです。


xlLastSheet = xlBook("Worksheets", "Sheet3") xlWorkSheet = xlBook("Worksheets", "Sheet1") xlWorkSheet->"Copy", xlLastSheet



しまごろう

リンク

2009/12/12(Sat) 16:17:27|NO.29237

できました!

*sheet xlLastSheet = xlBook("Worksheets", "Sheet"+count) xlWorkSheet = xlBook("Worksheets", "Sheet"+count) xlWorkSheet->"Copy", xlLastSheet xlworksheet = xlBook("Worksheets","Sheet"+count+" (2)") count=count+1 xlworksheet("Name")="Sheet"+count xlSheet = xlBook("Worksheets","Sheet"+count) ; Sheet取得 return
としたら自分の思っていた動きを再現できました。
本当にありがとうございました。



ONION software Copyright 1997-2021(c) All rights reserved.