VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2004/01/06(Tue) 14:58
投稿者kaminari
Eメール
URL
タイトルRe^2: VBからのExcel操作法について

花ちゃんさん、ご回答ありがとうございます。


> > Excel上にオートシェイプのテキストボックス(@)を配置してあり、VBで
> > コマンドボタンを押したときに@に値を書き込みたいのですが、
> > マクロを作成して、ソースを見てみたのですが、理解できませんでした。
> マクロを見ましたが、特に複雑なところが無いようですが、こちらも何か条件が
> あるのでしょうか? 条件があるなら質問時に記入しておくべきかと!

既存のExcelファイルを開き、編集して別名で保存しようとしております。
初心者で大変申し訳ないですが、コードを示させていだだきます。
●の部分で「オブジェクト変数またはWithブロック変数が定義されていません」とエラーが出てしまいます。

-----------------------------
Private Sub Command1_Click()
  Dim objExcelApp  As Workbook
  Dim strExcelFile As String
  Dim strExcelSheet As String
    Dim xlApp   As Excel.Application


  strExcelFile = "D:\test.xls"

  strExcelSheet = "sheet1"

  Set objExcelApp = GetObject(strExcelFile, "Excel.Sheet")
    Set xlApp = CreateObject("Excel.Application")

    objExcelApp.ActiveSheet.Shapes("Text Box 1").Select
    ●xlApp.ActiveSheet.Selection.Characters.Text = "12345"

  objExcelApp.SaveAs "d:\test---.xls"

  objExcelApp.Application.Quit


  Set objExcelApp = Nothing
    Set xlApp = Nothing

End Sub
-----------------------------

Dim i As Long, n As Long
For i = 1 To 10
     n = n + 1
     xlSheet.Cells(1, i).Value = "TEST"
     If xlSheet.Cells(1, i).Value = "TEST" Then
         xlSheet.Cells(1, i).Value = Chr(n + 64)
     Else
         n = n - 1
     End If
Next i

i をX方向に変えて、試させて頂きました。
セルを結合していない場合は綺麗に代入されるのですが、
(1, 1)と(2,1)を結合、(3,1)と(4,1)・(5,1)と(6,1)のように二つずつ結合したときに実行すると
結合されたセルにはA,B,C,D,Eまでしか代入されませんでした。

もう少し試して見たいと思います。

説明下手にもかかわらず、ご協力いただきまして、ありがとうございました。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -