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

投稿日: 2003/05/01(Thu) 10:32
投稿者ゆうや
Eメールcurren62036@yahoo.co.jp
URL
タイトルRe^2: Excelのシートからデータが読み込めません。

花ちゃんさん>
御返事ありがとう御座います。割愛し過ぎてよく分かりませんでしたね。具体的に書きます。
元ファイルはWin98 Excel2000で作りました。
シート名「Sheet1」のセルA1に0〜255迄の10進数値を入れ、セルB1に「=dec2hex(A1,2)」数式を入れま
す。
シート名「テスト」のセルA1に「="BW" & Sheet1!B1」数式を入れセルB2には何か適当な
文字を入れます。
これが256行迄続いています。で、昨日掲示板に載せましたコードをWinXP Excel2002が入っているPCで
実行しようとしました。

因みにVBコーディングはWinXP Excel2002が入っているPCで作業しています。
「cell1 = 〜」の行で"BWxx"という文字列が入るはずなのですが読み込めません。
あと、WinXPで作業したプロジェクトファイルをWin98のPCに入れて実行しようとしたら「Microsoft Exc
el10.0 Object Library」が参照不可になっていました。なのでWin98上で「Microsoft Excel 9.0 Object
Library」を参照するように変更しました。

temp = UCase〜の部分は、tempに格納した文字列をMSCommで送信する、ということになっていますが、
内容上書きませんでした。

OSは関係ないというご指摘から、Excelのバージョン違いによるものかな?とも思っています。
一応昨日のコードを記載させて頂きます。

なかなか分かりません。どうか皆様宜しくお願いします。

Dim n As Long 'For文カウンター
Dim cell1 As String, cell2 As String '読み込みセル文字
Dim excelApp As Excel.Application 'Excelアプリケーションオブジェクト
Dim excelBook As Excel.Workbook 'Excelワークブックオブジェクト
Dim excelSheet As Excel.Worksheet 'Excelシートオブジェクト

On Error Resume Next

Set excelApp = CreateObject("Excel.Application")
With excelApp
    .DisplayAlerts = False '終了時のダイアログボックスを非表示設定
    Set excelBook = .Workbooks.Open(temp) 'Excelファイルオープン
End With

'★指定シート名の検索、シートオブジェクトの設定
For n = 1 To excelApp.Worksheets.count
    If excelApp.Worksheets(n).name = "テスト" Then '指定シート名の判定
        Set excelSheet = excelBook.Worksheets(n)
    End If
Next

With excelSheet
    For n = 1 To 256 '256行迄を参照
        cell1 = .Cells(n, 1).Text '各セル内容を取得(此処で"BWxx"が入るはずなのです)
        cell2 = .Cells(n, 2).Text
        temp = UCase(cell1 & "," & cell2) '連結して格納(大文字)
    Next
End With

'★エクセルオブジェクトの解放
excelApp.Quit 'Excelアプリケーションの終了
Set excelApp = Nothing 'アプリケーションオブジェクト解放
Set excelBook = Nothing 'ワークブックオブジェクト解放
Set excelSheet = Nothing 'シートオブジェクト解放


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

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

- Web Forum -