- ベストアンサー
スプレッドシートに小さい表示でデータを貼り付ける方法
- オフィス2003VBAのスプレッドシートにエクセルデータを貼り付けると、とても大きな文字で表示されます。文字の大きさを小さく表示させるにはどうしたらよろしいでしょうか?
- スプレッドシート枠を小さく表示(例えばズーム50%)させるにはどうしたらよいでしょうか?
- 使っているコードは以下になります。Dim xlWb As Object Set xlWb = GetObject(Path & FileName_roga) xlWb.Worksheets(1).UsedRange.Copy
- みんなの回答 (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コントロールを普段から使いこなしているわけではないので(というか全く使わない...) 的外れな事を書いてるかもしれません。 他の方のアドバイスもお待ちください。
その他の回答 (1)
- end-u
- ベストアンサー率79% (496/625)
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 の親もちゃんと指定しないといけません。
お礼
ありがとうございます! ばっちり成功しました! なぜ自分で気づかなかったのか・・・
お礼
回答ありがとうございます! エクセルのツールバー⇒表示⇒「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