|
▼LostCat さん:
こんにちは。
>データソースとして、あるブックのシートを指定することで、そのシートの内容を
>表示してくれるコントロール。
はないと思います。XL2000では。
「MicrosoftOfficeSpreadsheet10.0」だとデータソースにExcelFilesがあるようです。
(〜10.0は、詳しくないので他にわかる方いらっしゃったらお願いします)
>>Spreadsheetでのやり方
>の始末をつけたほうがいいのかなと思ったもので。
拙いコード&無駄な記述がありますが、サンプルとして。
準備1)Sheetを追加して名前を HTMLIST としてください。
準備2)参照したいブック名やシート名を下記の要領で入力してください。
入力範囲はA2:E?になります。
フルパスの最後には \ をつけてください。
・・(VBAでウィザード的処理も可能ですが、とりあえずサンプルなので)
A B C D E
1 参照先フルパス ブック名 シート名 htm保存先 htmファイル名
2 C:\TEMP\ TEST1.xls Sheet1 C:\TEMP\ 適当1
3 C:\TEMP\ TEST2.xls テスト C:\TEMP\ 適当2
あとは下記コードを標準モジュールにコピー&ペーストして、
貼り付けたいシートを選択して、マクロ実行してみてください。
Sub サンプル()
Dim Rn As Long, i As Long
Dim myVal As Variant
Dim myWb As Workbook
Application.ScreenUpdating = 0
'ActiveSheet.OLEObjects.Delete '他にOLEObjectがない場合のみコメントイン
With ThisWorkbook.Worksheets("HTMLIST")
Rn = .Cells(Rows.Count, 1).End(xlUp).Row
If Rn < 2 Then Exit Sub
myVal = Range(.Cells(2, 1), .Cells(Rn, 5)).Value
End With
For i = 1 To Rn - 1
On Error Resume Next
Set myWb = Workbooks(myVal(i, 2))
On Error GoTo 0
If myWb Is Nothing Then
Workbooks.Open myVal(i, 1) & myVal(i, 2)
Set myWb = Workbooks(myVal(i, 2))
End If
myWb.PublishObjects.Add(xlSourceSheet, myVal(i, 4) & myVal(i, 5), _
myVal(i, 3), "", xlHtmlStatic, "", "").Publish (True)
myWb.Close (0)
Set myWb = Nothing
With ActiveSheet.OLEObjects.Add(ClassType:="OWC.Spreadsheet.9", _
Link:=False, DisplayAsIcon:=False, _
Left:=500, Top:=110 * i - 100, Width:=200, Height:=100).Object
.HTMLURL = myVal(i, 4) & myVal(i, 5)
.DisplayTitleBar = 0
.DisplayToolbar = 0
End With
Next
Application.ScreenUpdating = 1
On Error Resume Next '※
ActiveSheet.Previous.Select '※
ActiveSheet.Next.Select '※本来必要なし・・Spreadsheetの表示が変?
End Sub
他の方にとっては、突然のコードなのですが、経緯としては↓
http://excelfactory.net/excelboard/exgeneral/excel.cgi?mode=all&namber=49590&rev=0
http://excelfactory.net/excelboard/exgeneral/excel.cgi?mode=all&namber=49642&rev=0
(ここ他の板リンクよかったかしらん?だめでしたら削除します。おっしゃってください)
あちらが一般板なのでこちらに移られると思うのですが、
皆様からより適切なアドバイスして頂けるようリンク貼りました。
では、宜しくお願いします。
LostCatさん。おせっかいしちゃってごめんなさい。(^-^)
|
|