■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#4033-2VBからエクセルの操作する方法ゆうくん2002-01-18(金) 17:35
     #4042-2RE#4033:VBからエクセルの操作する方法患者猫☆ぼの2002-01-19(土) 08:14
     #4042-0RE#4033:VBからエクセルの操作する方法患者猫☆ぼの2002-01-19(土) 17:14
#4033-2
VBからエクセルの操作する方法
はじめまして、ゆうくんです。

現在。VBからのExcel-Excel間のシートコピー&追加の方法が分からなくて
非常に混乱してしまっています。

諸先輩方にご教授願いたくよろしくお願いいたします。

処理内容は 
既存のデータベースの内容を指定グループ毎にエクセルのシートに書出するだけなのですが、

まず、エクセルのシートは雛型エクセルファイルが存在
かつシート名"Sheet1"に雛型が登録されている事が前提となっております。

この雛型ブックは読み込み専用として、書き出しブックは新規作成するものです。

現在はMicrosoft Excel Objectの参照設定して次の様なコードを記述していますが、
多分単純すぎるポカしてるんだと思いますが、よろしくお願いいたします。
Private Function Output_ExcelWorkBooks(strExcelFilePathName as string _
                                      ,adoRecordset as ADODB.RecordSet) as Boolean
    Dim objWorkBook As Workbook
    Dim strGroupKey As String
    Dim lngRowCount As Long

    On Error Goto Output_ExcelWorkBokks_Err
    ''雛型エクセルブックオブジェクトを取得
    Set objWorkBook = GetObject(strExcelFilePathName)

    ''1ページ目の設定
    adoRecordset.MoveFirst
  strGroupKey = adoRecordset.Fields("GroupKey").Value
    ''雛型エクセルから新規エクセルを作成
    objWorkBook.Sheets("Sheet1").Select
    objWorkBook.Sheets("Sheet1").Copy

    lngRowCount = 1
    Do Until adoRecordset.EOF
	If strGroupKey = adoRecordset.Fields("GroupKey").Value Then
	    lngRowCount = lngRowCount + 1
	    ''同一シート内に出力
	    objWorkBook.ActiveSheets.Range("A" & lngRowCount) _
                = IIf(IsNull(adoRecordset.Fields("FirstName").Value) _
                     ,vbNullString, adoRecordset.Fields("FirstName").Value)
            以下省略
	    adoRecordset.MoveNext
	Else
	   ''**現在のブックに雛型シートを挿入のつもりだったのにエラー発生
           objWorkBook.Sheets("Sheet1").Select
           objWorkBook.Sheets("Sheet1").Copy Before:=objWorkBook.Sheets(1)
	End If
    Loop

    Output_ExcelWorkBokks = False
    Exit Function

Output_ExcelWorkBokks_Err:
    Output_ExcelWorkBokks = True
End Function

#4042-2
RE#4033:VBからエクセルの操作する方法
> 現在。VBからのExcel-Excel間のシートコピー&追加の方法が分からなくて
> 非常に混乱してしまっています。

私が前に同じような事をしたときのコードです。 Excelを開くところは省略しました。

  Set Book1 = ExcelApp.Workbooks.Open(App.Path & "\Param.xls")  '雛型ブックを開く

'シート1の名前を変更
  Book2.Sheets("Sheet1").Name = "ほげほげ"

'Book2のシート2、3を削除・・・しようとすると確認ダイアログが出る(^^;)
' Book2.Activate
' Book2.Sheets(Array("Sheet2", "Sheet3")).Delete

'Book1のシート『パラメータ』『条件』をBook2のシート1の後ろにコピー
  Book1.Activate
  Book1.Sheets(Array("パラメータ", "条件")).Copy After:=Book2.Sheets(1)


プログラムしたい内容と同じ処理のマクロを作成し、マクロのソースを参照すると、
オブジェクト名などの部分を書くだけで使えたりします(^^;)
#4042-0
RE#4033:VBからエクセルの操作する方法
> 現在。VBからのExcel-Excel間のシートコピー&追加の方法が分からなくて
> 非常に混乱してしまっています。

私が前に同じような事をしたときのコードです。 Excelを開くところは省略しました。

  Set Book1 = ExcelApp.Workbooks.Open(App.Path & "\Param.xls")  '雛型ブックを開く

'シート1の名前を変更
  Book2.Sheets("Sheet1").Name = "ほげほげ"

'Book2のシート2、3を削除・・・しようとすると確認ダイアログが出る(^^;)
' Book2.Activate
' Book2.Sheets(Array("Sheet2", "Sheet3")).Delete

'Book1のシート『パラメータ』『条件』をBook2のシート1の後ろにコピー
  Book1.Activate
  Book1.Sheets(Array("パラメータ", "条件")).Copy After:=Book2.Sheets(1)


プログラムしたい内容と同じ処理のマクロを作成し、マクロのソースを参照すると、
オブジェクト名などの部分を書くだけで使えたりします(^^;)
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)