プロが教えるわが家の防犯対策術!

オフィス2003VBAのスプレッドシートにエクセルデータを貼り付けると、とても大きな文字で表示されます。
文字の大きさを小さく表示させるにはどうしたらよろしいでしょうか?
また、スプレッドシート枠を小さく表示(例えばズーム50%)させるにはどうしたらよいでしょうか?
ご存知の方教えてください。よろしくお願いします!


使っているコードは以下になります。

Dim xlWb As Object
Set xlWb = GetObject(Path & FileName_roga)
xlWb.Worksheets(1).UsedRange.Copy

A 回答 (2件)

>文字の大きさを小さく表示させるには...


これはSpreadsheetのフォントサイズや行列サイズを変更する事で対応できないですか?
一例として
Private Sub CommandButton1_Click()
  With Me.Spreadsheet1.Cells
    If .Font.Size > 5 Then
      .Font.Size = .Font.Size - 1
      .RowHeight = .RowHeight - 1
      .ColumnWidth = .ColumnWidth - 1
    End If
  End With
End Sub
こんなんでは?クリックする度に小さくします。
(-1 とかは適当です)

>スプレッドシート枠を小さく表示(例えばズーム50%)
Zoomに関わるプロパティが無いようなので、
オブジェクトのサイズ自体を変更するというような解釈でいいのでしょうか?
その場合は Frameコントロールを配置して、その中にSpreadsheetを置き、
Private Sub CommandButton2_Click()
  Dim x

  x = InputBox("zoom?")
  x = Val(x)
  If x > 0 Then
    If x > 100 Then x = 100
    Me.Frame1.Zoom = x
  End If
End Sub
こんな感じでFrameのZoomプロパティで制御してはどうですか?

Spreadsheetコントロールを普段から使いこなしているわけではないので(というか全く使わない...)
的外れな事を書いてるかもしれません。
他の方のアドバイスもお待ちください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
エクセルのツールバー⇒表示⇒「zoom」のようなものは、スプレッドシートにないような感じですね。

教えていただいた、フォントサイズの縮小、列幅の変更で対応できました。
私のコードのどこかがおかしく、適応されたのが1枚目のシートのみでした。いかにコードを貼り付けます。
何度見ても直すところがわかりませんので、どなたか教えていただけませんでしょうか?

Dim xlWb As Object
Set xlWb = GetObject(Path & FileName_roga)
For i = 1 To Workbooks(FileName_roga).Sheets.count - 3
Spreadsheet2.Sheets.Add
Next i
sheet_number = 1
For i = 1 To Workbooks(FileName_roga).Sheets.count
xlWb.Worksheets(i).UsedRange.Copy
With Spreadsheet2
.Worksheets(i).Cells(1, 1).Paste
.Sheets(i).Name = xlWb.Worksheets(i).Name
.Sheets(i).Range("A1").Select
.Cells.Font.Size = 8
.Cells.ColumnWidth = 6
End With
If Trim(xlWb.Worksheets(i).Name) = "ロガー(表)" Then sheet_number = i
Next i
Spreadsheet2.Sheets(sheet_number).Select

お礼日時:2009/06/11 14:44

Workbooks(FileName_roga)って


Set xlWb = GetObject(Path & FileName_roga) でセットした xlWb の事ですよね?
その前提で、下記のようにしてみてください。

Dim xlWb As Object
Set xlWb = GetObject(Path & FileName_roga)
For i = 1 To xlWb.Worksheets.Count - 3
  Spreadsheet2.Sheets.Add
Next i
sheet_number = 1
For i = 1 To xlWb.Worksheets.Count
  xlWb.Worksheets(i).UsedRange.Copy
  With Spreadsheet2.Sheets(i) '※1 ここでSheetを指定
    .Cells(1, 1).Paste
    .Name = xlWb.Worksheets(i).Name
    .Range("A1").Select
    .Cells.Font.Size = 8  '※2
    .Cells.ColumnWidth = 6 '※3
  End With
  If Trim(xlWb.Worksheets(i).Name) = "ロガー(表)" Then sheet_number = i
Next i
Spreadsheet2.Sheets(sheet_number).Select

※1でSheetも含めてWithステートメントでくくって
※2、※3 の Cells の親もちゃんと指定しないといけません。
    • good
    • 0
この回答へのお礼

ありがとうございます!
ばっちり成功しました!

なぜ自分で気づかなかったのか・・・

お礼日時:2009/06/12 09:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!