Office2000 の Excel を使っている。行の高さは自動的に調整されてちょうど良い高さになってくれるが、ときどきそうならない場合があることに気づいた。印刷するとセルの末尾行が切れてしまったり、そもそも画面に表示されないので最後の一文の存在に気づかなかったりと、非常に使いにくい。
調べてみると、「セルの結合」の対象になっている場合は自動調整がされなくなるとのこと。なんでそんな仕様なんだろう? 不便だー。
マクロで行の高さを調整する方法もあるようだけど、そんな手間をかけたくない。
Excel VBA Q&A掲示板
http://www2.moug.net/app/bbs/message.php?cat=exvba&id=20 ...
変数名に日本語を使うのってなかなか新鮮な感じがする。
新しいバージョンの Excel とか OpenOffice.org なら自動調整してくれるのかな。試す価値はあるかも。
調べてみると、「セルの結合」の対象になっている場合は自動調整がされなくなるとのこと。なんでそんな仕様なんだろう? 不便だー。
マクロで行の高さを調整する方法もあるようだけど、そんな手間をかけたくない。
Excel VBA Q&A掲示板
http://www2.moug.net/app/bbs/message.php?cat=exvba&id=20 ...
特定のセルの内容が変わったらマクロを実行する
特定のセルに対して、入力された文字の量に合わせて、行高を自動変更するに
は、どのように記述したらいいでしょうか?
セル結合しているので、EXCEL機能の自動調整が使えません。
マイナーチェンジ版ッス
Option Explicit
Sub オートフィット()
'特定のセルの結合されている範囲を取得.
Dim rngTarget As Range: Set rngTarget = ActiveSheet.Range("A1").Me
rgeArea
'特定のセルを,どこか好きなところへ複写.
Dim rngTemp As Range: Set rngTemp = Worksheets("PRIVATE").Range("A
1")
rngTemp.Worksheet.Cells.Clear
rngTarget.Copy
rngTemp.PasteSpecial Paste:=xlPasteAll
'複写先を UnMerge.
rngTemp.UnMerge
rngTemp.Copy
rngTemp.ClearContents
rngTemp.Copy rngTemp.EntireColumn
'特定のセルの Width を元に,複写先の ColumnWidth を変更.
FitColumn rngTemp, rngTarget
rngTemp.EntireRow.AutoFit
'オートフィット後の高さ の取得
rngTarget.Copy rngTemp
rngTemp.UnMerge
rngTemp.EntireRow.AutoFit
'複写先の Height を元に,結合されている範囲の Heightを変更.
FitHeight rngTarget, rngTemp
End Sub
Private Sub FitColumn(ByVal 対象範囲 As Range, ByVal 目標Width As Rang
e)
Dim 比率 As Double ' Width / ColumnWidth
Dim 差分 As Double ' 対象範囲.Width - 目標Width.Width
Dim Counter As Long '“差分”が収束しないときのガス抜き用
Dim aColumn As Range
Dim 幅 As Double '目標Width の ColumnWidth の和
For Each aColumn In 目標Width.Columns
幅 = 幅 + aColumn.ColumnWidth
Next
対象範囲.EntireColumn.ColumnWidth = 幅
比率 = 対象範囲.Width / 対象範囲.ColumnWidth
For Counter = 0 To 9
差分 = (対象範囲.Width - 目標Width.Width) / 比率
If Abs(差分) < 0.25 / 比率 Then Exit For
対象範囲.EntireColumn.ColumnWidth = 対象範囲.EntireColumn.Colu
mnWidth - 差分
Next
Debug.Print 対象範囲.Width, 目標Width.Width, Counter
End Sub
Private Sub FitHeight(ByVal 対象範囲 As Range, ByVal 目標Height As Ran
ge)
Dim Height1 As Double, Height2 As Double
Dim 差分1 As Double, 差分2 As Double ' 対象範囲.Height - 目標Heigh
t.Height
Height1 = 目標Height.RowHeight / 対象範囲.Rows.Count
対象範囲.EntireRow.RowHeight = Height1
Height1 = 対象範囲.EntireRow.RowHeight
差分1 = 対象範囲.Height - 目標Height.Height
Height2 = Height1 - Sgn(差分1) * 0.25
対象範囲.EntireRow.RowHeight = Height2
差分2 = 対象範囲.Height - 目標Height.Height
If Abs(差分1) < Abs(差分2) Then
対象範囲.EntireRow.RowHeight = Height1
End If
Debug.Print 対象範囲.Height, 目標Height.Height
End Sub
変数名に日本語を使うのってなかなか新鮮な感じがする。
新しいバージョンの Excel とか OpenOffice.org なら自動調整してくれるのかな。試す価値はあるかも。
- すべての記事の見出し (全1029件)
- 全カテゴリの一覧と記事の数
- カテゴリごとに記事をまとめ読みできます。記事の表題だけを見たい場合は、すべての記事の見出し (カテゴリ別表示) へ。
- .net (57件)
- 2ch (19件)
- amazon (5件)
- Apache (22件)
- bash (13件)
- Bookmarklet (9件)
- C# (45件)
- chalow (18件)
- ChangeLog メモ (20件)
- coLinux (2件)
- CSS (5件)
- Delphi (5件)
- DVD (6件)
- Excel (1件)
- F-ZERO (4件)
- FF12 (31件)
- ftp (8件)
- Google (21件)
- gpg (7件)
- HTML (19件)
- http (19件)
- IE (10件)
- IIS (4件)
- iPod (2件)
- JavaScript (14件)
- Linux (63件)
- MCP (6件)
- Mozilla (14件)
- MS SQL Server (30件)
- MySQL (4件)
- Namazu (3件)
- PC (48件)
- Perl (58件)
- PHP (2件)
- Postgres (36件)
- proftpd (2件)
- qmail (1件)
- RFC (4件)
- RSS (33件)
- Ruby (15件)
- samba (3件)
- sonic64.com (6件)
- SQL (15件)
- Squid (3件)
- ssh (7件)
- Subversion (3件)
- unix (31件)
- VSS (2件)
- Windows (34件)
- winny (9件)
- XML (9件)
- xyzzy (17件)
- おいでよ どうぶつの森 (19件)
- お菓子 (5件)
- アスキーアート (13件)
- アニメ (9件)
- クレジットカード (2件)
- ゲーム (120件)
- シェルスクリプト (18件)
- シレン2 (8件)
- セキュリティ (9件)
- ソフトウェア (21件)
- デザインパターン (2件)
- ネットワーク (30件)
- バックアップ (17件)
- プログラミング (14件)
- マリオカートDS (3件)
- メール (26件)
- メモ (116件)
- ラーメン (11件)
- 音楽 (59件)
- 給油 (3件)
- 三国志大戦 (13件)
- 車 (7件)
- 書斎 (4件)
- 食 (30件)
- 買い物 (17件)
- 簿記 (8件)
- 本 (32件)
- 漫画 (9件)
- 2007-04-23 (Mon)
- 2007-03-07 (Wed)
- 2007-02-27 (Tue)
- 2007-01-17 (Wed)
- 2007-01-15 (Mon)
- 2007-01-14 (Sun)
- 2007-01-08 (Mon)
- 2006-12-01 (Fri)
- 2006-11-22 (Wed)
- 2006-11-20 (Mon)
- 2006-11-19 (Sun)
- 2006-09-30 (Sat)
- 2006-08-29 (Tue)
- 2006-08-04 (Fri)
- 2006-07-27 (Thu)
- 2006-07-23 (Sun)
- 2006-07-17 (Mon)
- 2006-07-10 (Mon)
- 2006-07-06 (Thu)
- 2006-07-03 (Mon)
- 2006-06-29 (Thu)
- 2006-06-28 (Wed)
- 2006-06-27 (Tue)
- 2006-06-25 (Sun)
- 2006-06-19 (Mon)
- 2006-06-18 (Sun)
- 2006-06-15 (Thu)
- 2006-06-11 (Sun)
- 2006-06-01 (Thu)
- 2006-05-30 (Tue)
- プロファイル
- 斎藤 宏明。エンジニアです。宇都宮市に住んでいます。
- リンク
- RSS
- スポンサードリンク
- Powered by
- ☆さくらインターネット☆