• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:スプレッドシートに小さい表示でデータを貼り付ける方法を教えてください)

スプレッドシートに小さい表示でデータを貼り付ける方法

このQ&Aのポイント
  • オフィス2003VBAのスプレッドシートにエクセルデータを貼り付けると、とても大きな文字で表示されます。文字の大きさを小さく表示させるにはどうしたらよろしいでしょうか?
  • スプレッドシート枠を小さく表示(例えばズーム50%)させるにはどうしたらよいでしょうか?
  • 使っているコードは以下になります。Dim xlWb As Object Set xlWb = GetObject(Path & FileName_roga) xlWb.Worksheets(1).UsedRange.Copy

質問者が選んだベストアンサー

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

>文字の大きさを小さく表示させるには... これは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コントロールを普段から使いこなしているわけではないので(というか全く使わない...) 的外れな事を書いてるかもしれません。 他の方のアドバイスもお待ちください。

ddtqp
質問者

お礼

回答ありがとうございます! エクセルのツールバー⇒表示⇒「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

その他の回答 (1)

  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

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 の親もちゃんと指定しないといけません。

ddtqp
質問者

お礼

ありがとうございます! ばっちり成功しました! なぜ自分で気づかなかったのか・・・