【初月無料キャンペーン中】gooドクター

1行、1列の場合は行や列を指定後、右クリックすれば行の高さや列の幅を選べます。
今の質問はセル範囲を指定した場合、範囲全体の行の高さと列の幅を表示させる式を教えてください。
また、その単位は何でしょうか?行の高さ=24.6と、列の幅=3.5とはそれぞれ何でしょうか?また、印刷時のmmとの対応はどんな関係でしょうか?

gooドクター

A 回答 (4件)

セルの幅なら、CELL関数で取得できます。


CELL("width", [対象範囲])

高さを求める関数は心当たりがありません。マクロを使えば求められますが。

高さ、幅の単位は、ヘルプに書いてあります。(下記参照)
----------------------------------------------------------------
ワークシートの列幅は、0 (ゼロ) ~ 255 の間で指定できます。この値は、標準フォント (標準フォント : ワークシートの文字に標準で設定されるフォント。標準フォントは、セルの標準スタイルの既定のフォントとして使用されます。)で書式設定されているセルに表示できる文字数を表します。既定の列幅は 8.43 文字です。列幅を 0 に設定すると、列は非表示になります。

行の高さは 0 (ゼロ) ~ 409 の間で指定できます。この値は、ポイント (1 ポイントは約 1/72 インチまたは約 0.035 cm) で表される列の高さを示します。既定の行の高さは 12.75 ポイント (約 1/6 インチまたは約 0.4 cm) です。行の高さを 0 に設定すると、行は非表示になります。
    • good
    • 0
この回答へのお礼

申し訳ありません。回答2に対するお礼の欄に書き込みました。
お礼を1,2入れ替えて書かせてもらいます。

ここには、No.2へのお礼として書かせてもらいます。
コメントありがとうございます。
エクセル関数が1つの値を返すことは承知しています。それで、関数が不適当とはどう言う意味でしょうか?今の場合、セルの範囲を指定するので、答えは一つしか存在しません。普通の簡単な関数で、複数のセル範囲の合計をその範囲とは別のセルに求めることできませんか?
d3=sum(a1:c2)と、できませんか?
例えば、d3=sumh(a1:c2),d3=sumb(a1:c2)
のように、hで高さ、bで幅を区別します。

お礼日時:2009/07/09 23:28

No.1です。



複数のセルの幅合計を求めるときは、CELL関数で足し算をします。

例)=CELL("width", A1)+CELL("width", B1)

マクロでも幅を求めることはできますが、私が知る限り、セル単位であって、複数セルの合計は求めることはできません。



高さの合計を求めるには、次のユーザー定義関数を使います。

Function takasa(r As Range)
takasa = r.Height
End Function

例)=takasa(A1:A3)

ただし、ユーザー定義関数は、再計算が行われないと結果が反映されません。つまり、高さを変えただけでは結果の数値は変わりません。F9キーを押してもだめで、数式のあるセルでF2キーを押してからEnterキーを押す(セルの編集)必要があります。

再計算イベントの中に、再計算コマンドを記述する(下記コード参照)ことにより、F9キーには対応することができますが、セルの高さを変えると自動で変わるようにする方法は思いつきません。

Private Sub Worksheet_Calculate()
Calculate
End Sub
    • good
    • 1
この回答へのお礼

マクロの紹介ありがとうございました。マクロ一般の使い方を別途勉強することにします。

お礼日時:2009/07/13 09:47

#2です。


>私の質問はセル範囲と書きました通り、複数セルの
全体の高さと幅を指したつもりでした
だから同じ行のセルの全部の高さや、同じ列のセルの全部の幅を
調べても同じなのだから、列幅は代表で何処かの行、行高は各行のA列の高さを調べれば良いといったまで。
それらの和を出したいなら、順次列幅、行高を各々足していけば仕舞い。
結局簡単なVBAだが、それが出来ないと質問の券は求められないと言うことかな。質問者は、VBAの経験有るのかな。
    • good
    • 0
この回答へのお礼

はい、VBAの経験はありません。ただ順次列幅、行高を各々足すことは理解できます。簡単にできることなら、sumb(範囲)、sunh(範囲)の形で求め、ユーザー定義の関数に加えたいです。

お礼日時:2009/07/10 00:38

>指定範囲の


と有るので、範囲内の行や列の数は複数だと思います。
そういう場合、エクセル関数では、1つの値しか返さ無いので、関数は不適です。式の複写に持ち込めばできると言うかも知れないが。
しかし、もともと関数はセルの価!しか対象に出来ないことを知らないところから>表示させる式を、と言う表現になっていないか。
表高、列幅はエクセル関数(ユーザー関数ではない)では捉える関数は無い。エクセル関数で左右することも出来ない。
例外がCELL関数のWidthパラメータだが、小数点以下を切り捨てたセルの幅となっていて、あまり使われない。行高には対応するものが無い。
ーー
これらはVBAを使い、ユーザー関数化(1行で済む)すれば、なんていうこと無いので、VBAが判る人には余り意味が無い。
VBAで
各列を捉える方法
各行を捉える方法
などもちょっとしたVBAのテクニックが必要。
VBAを勉強してください。範囲の全セル捉えるのは簡単。
ーーーー
単位については、Googleででも「エクセル 列幅 単位」などで照会したら直ぐ出るよ。
最初に出たのが
http://www.relief.jp/itnote/archives/000343.php
で他にも、多数出る。
    • good
    • 0
この回答へのお礼

コメントありがとうございます。
cell関数では[対象範囲]を指定するようになっていますが、実際は1つのセルだけが対象ではありませんか?私の質問はセル範囲と書きました通り、複数セルの全体の高さと幅を指したつもりでした。もしマクロで可能なら式を作成していただけたらありがたいです。
なお、単位に関しては承知しました。

お礼日時:2009/07/09 22:52

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

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング