• 締切済み

エクセルについて

エクセルで矢印をひき、その矢印がセル何マス分か数字を出すことは可能ですか?

みんなの回答

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.5

面白そうな質問だったので、アイディアだけです。 セルの位置が Range("A1").Top と.Left で得られるので 総当たりしてみました。 Sub ボタン1_Click() With Selection.ShapeRange For i = 1 To 100 If Cells(i, 1).Top > .Top Then Exit For Next MsgBox i - 1 & "行目の" GYOU = i For i = 1 To 100 If Cells(1, i).Left > .Left Then Exit For Next RETU = i MsgBox i - 1 & "列目から始まり" For i = 1 To 100 If Cells(i, 1).Top > .Top + .Height Then Exit For Next GYOU = i - GYOU + 1 MsgBox i - 1 & "行目の" For i = 1 To 100 If Cells(1, i).Left > .Left + .Width Then Exit For Next RETU = i - RETU + 1 MsgBox i - 1 & "列目で終わる" End With MsgBox "つまり" & GYOU & "行と" & RETU & "列を使用している" End Sub は参考になりますでしょうか?

回答No.4

No.3 です。No.3 の回答の中で一部、補足すべきことがあります。 「標準フォントが変わると、上の数値は微妙に変化します。」と説明しましたが、これは Excel2003 以前の場合でした。 2007 以後では、新規ワークブックを作製したときの列幅は、「既定の幅」、あるいは「標準の幅」、「標準の列幅」という名称の値で指定されている長さとなります(参考 URL)。つまり 2007 以後、フォントの変更によっては、この幅は変化しないということです。失礼しました。

参考URL:
http://cblog.crie.jp/excel/212/
回答No.3

例えば「標準フォント」が 11 ポイントの「MS Pゴシック」である場合、Excel の標準の列幅は、「半角 8.38 文字・ 72 ピクセル・ 54 ポイント」となります。これは、1 行の高さ「18 ピクセル・ 13.5 ポイント」の丁度 4 倍の長さであり、全角 4 文字(半角 8 文字)と余白分の長さとも言えます。 矢印の長さは、ポイントで指定します。マクロで取得するなら、Shapes オブジェクトの Width あるいは Height プロパティです。手作業なら、矢印を右クリックして「サイズとプロパティ」の「幅」や「高さ」をコピーしたらいいですね。その値が例えば 216 だったら、上の条件では、216 ÷ 54 = 4 列分の長さの矢印だと計算できますね。 標準フォントが変わると、上の数値は微妙に変化します。列番号と列番号の境界をクリックしたときにポップアップする「幅:8.38(72ピクセル)」という表示(参考 URL)が変化します。ピクセルとポイントが入り乱れて混乱しますが、慎重に計算すればできると思います。 列幅にピッタリ合わせて矢印を描くには、キーボードの Alt キーを押しながらドラッグします。 既に列幅にピッタリ合っていることが分かっている矢印の場合は、単に列数を計算すれば、それがそのままご質問の値となりますね。B 列の左端から E 列の右端まで矢印が引かれているなら、 =column(e1)-column(b1)+1 といった具合に列数が計算できますね。

参考URL:
http://allabout.co.jp/gm/gc/297706/
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

回答No1です。エクセルの画面で図形から矢印を選択して描いたとしてもそれが何セル分であるかを求めることはセルの高さや幅も影響しまうので求めることはできないでしょう。 その矢印を取り囲むようにしてセルの範囲を選択した上で回答No1を行うことになるでしょう。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

シート見出しを右クリックして「コードの表示」を選択します。 表示の画面で次のコードを入力します。 Sub 選択範囲のセル数() Dim xRow, yColumn As Integer xRow = Selection.Rows.Count yColumn = Selection.Columns.Count MsgBox "選択範囲のセル数は" & xRow * yColumn & "です。" End Sub マクロを実行する際にはAltキーを押しながらF8キーを押します。 表示の画面で選択範囲のセル数を選択して「実行」ボタンをクリックします。選択された範囲内のセルの数が表示されます。

関連するQ&A