The Road to EXCELER ~エクセラーへの道~
ブログ
  • HOME »
  • ブログ »
  • 月別アーカイブ: 2010年10月

月別アーカイブ: 2010年10月

【エクセル2010】数式バーの幅(高さ)をマクロで自動調整(2)

石ばし。

江戸川橋の超老舗です。

普通の民家っぽい、雰囲気タップリのお店。昔は蔵だったんでしょうかね。。

(゚ ▽ ゚ 😉

うなぎのかたさもタレの上品さもGood!でした。

時間のあるときにまたゆっくりと来たいものです。

:*:・( ̄∀ ̄)・:*:

最近めっきり寒くなりましたねぇ~。。

風邪がはやってきているようですのでご注意を!

(*^o^*)

゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚ ゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚ ゚・*:.。..。.:*・゚

さて、前回までの解説で、セル内改行の数+1 が、A1セルの文字列の行数になるので、

=LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),""))+1

という関数式で、A1セルに入力されている文字列の行数が求められる、ということと、

Application.FormulaBarHeight = 5

というコマンドで、マクロによって、数式バーの幅を「5」に広げることができ、この「5」の部分を変数にすれば、広げる幅を自由に調整することができそうなことがわかりましたね。

単純に考えると、

a = LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),""))+1

Application.FormulaBarHeight = a

という2行のマクロを実行すれば、A1セルの行数に合わせて数式バーの幅が調整されるはずです。

基本はそれでOKですが、ここで知っておかないといけない事項がいくつかあります。

まずは、マクロの中で(VBAで)使われる関数と、エクセルのワークシート上で使われる関数は扱いが異なる、ということです。

ワークシート上で使う関数は、そのままではVBA上では使えません。

VBA上で使う関数が、エクセルのワークシート上でそのまま使えない、というのは感覚的に理解できるように思いますが、まぁそれと同じです。

そしてまたややこしいことに、同じ関数が使える場合であっても、ワークシート上で使う場合とVBA上で使う場合とで機能が異なることもあります。あと、微妙にスペルが違うこともあります。。

(_ _。)

そもそも、VBAはエクセルのためにあったわけではなく、別々に存在していたものをあとからエクセルに取り入れたという経緯があるため、こういうやっかいなことが起こります。

これはちょっとどうしようもないので、使用するときにネットや本で調べることになりますが、ワークシート関数はほとんどの場合、頭に

Application.

を付ければVBA上で使えるようになりますので、使いたい関数がVBA関数として同じように使用できるのかどうかさえわかればそんなに困ることはありません。

ちなみに、今回出てくるLEN関数は、VBA上でそのまま使えますが、SUBSTITUTE関数はワークシート関数なので、マクロで使用するときは、

Application.Substitute ~

として使用することになります。

ちょっとややこしいですね。。

(;^_^A

【エクセル2010】数式バーの幅(高さ)をマクロで自動調整

まぐろ問屋 十代目 彌左エ門。

秋葉原を通ったときにフラッと入りました。

(^▽^;)

三崎の新鮮なマグロを食べまくりでなかなか良かったのでご紹介します。
やっぱり魚介のおいしいお店がいいですね~。。

:*:・( ̄∀ ̄)・:*:

話は変わりますが、魚介といえば、親せきからホタテを大量にいただきました。

「これでもか!」と言わんばかりに箱に詰まってましたが、新鮮なうちにこんなふうに↓バター焼きにして一気に食べちゃいました。

ごちそうさま。ありがとうございましたー!

(*^o^*)

アメーバイチ押しグルメ情報 グルブロ
参加中

まぐろ問屋 十代目 彌左エ門 アトレヴィ秋葉原店
まぐろ問屋 十代目 彌左エ門 アトレヴィ秋葉原店

住所:東京都千代田区神田花岡町‐1‐9アトレヴィ秋葉原4F
電話番号:03-5298-2721
評価:評価3.5

゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚ ゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚

マクロで数式バーの幅を調整するには、どのようなコマンドを使えばいいのでしょうか。。

こういうのは特に覚える必要はありません。(私も知りません。。)

なぜなら、エクセルに教えてもらえばいいだけだからです。

エクセルには、マクロを自動的に記述する機能が最初から備わっています。これを利用しましょう。

[開発]タブの[マクロの記録]をクリックしてください。

[開発]タブが表示されていない方は、

[ファイル]タブ→[オプション]→[リボンのユーザー設定]から、「開発」のチェックボックスにチェックを入れてください。

[マクロの記録]ボタンをクリックすると、「マクロの記録」ウィンドウがでてきますが、そのまま「OK」としてください。

そして、数式バーを適当に広げて、[記録終了]ボタンをクリック。

これで、数式バーの幅を調整するコマンドが記録されました。

[マクロ]ボタンから、[編集(E)]をクリックすると、このように↓中身を見ることができます。


どうやら、数式バーの幅を調整するコマンドは、

Application.FormulaBarHeight = 5

の部分だということがわかりますね。

そして、「5」の部分を変更することによって、広げる幅を調整することができそうなこともわかります。

この後、この「5」の部分を変数にして、セルごとに必要な高さの分だけ広げられるようにしていきたいと思います。

(o^-‘)b

あ、このマクロ「Macro1」は、もう使わないので、捨ててしまってください。

[マクロ]ボタンから、[削除(D)]をクリックすると削除できます。

こんなふうに、「使い捨て」感覚で、気軽にマクロを利用しましょう。

v(^-^)

【エクセル2010】セル内改行の個数を数える

銀座しゃぶ通 好の笹。

マロニエゲートの12階にあります。
蒸ししゃぶって初めて食べましたが、なかなかおいしくて健康的ですね。。

こんなふう↓に野菜を敷き詰めて肉を蒸していき、できあがったら店の人が取り分けてくれるので、肉の「ばっかり食べ」がなくなります。

(^_^)v

最近けっこうはやってるそうで、2号店もオープンするみたいですね。

話のネタに一度は行っておいてもよろしいかと思います。

(*^o^*)

アメーバイチ押しグルメ情報 グルブロ
参加中
銀座しゃぶ通 好の笹 マロニエゲート
銀座しゃぶ通 好の笹 マロニエゲート


住所:東京都中央区銀座2-2-14 マロニエゲート12F
電話番号:03-5159-1287
評価:評価4

゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚ ゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚

前回は「を」という文字が、文字列の中にいくつあるかカウントしましたね。

今度は文字ではなく、セル内改行がいくつあるかカウントしてみましょう。

こんなふうに、A1セルに文字列が入っているとします。

セル内改行は3個です。

「を」の次に1個、「む」の次に1個、「て」の次に1個で、合計3個ですね。

これを関数で数えます。

実は、これは、前回紹介したパターンさえ知っていれば簡単にできてしまいます。

「を」という文字をカウントした代わりに、セル内改行をカウントするだけなので、前回「を」を入れた計算式のところに、今度は「セル内改行」を入れればいいだけです。

前回の関数は、

=LEN(A1)-LEN(SUBSTITUTE(A1,"を",""))


でしたね。

これの「を」の部分を「セル内改行」に置き換えると、

=LEN(A1)-LEN(SUBSTITUTE(A1,セル内改行,""))

となります。

「セル内改行」は、エクセルの中では、CHAR(10) というキャラクターコードで認識されますので、

=LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),""))

とすれば、A1セルの中の「セル内改行」をカウントすることができます。

まぁこのあたりは一つのパターンですので、やり方としてこういうふうにするんだ、と認識しておいてもらえれば結構かと思います。。


ひとつ、注意点としては、セル内改行の数+1 が、A1セルの文字列の行数になる、という点です。

次回、いよいよ“使い捨てマクロ”に取りかかりますが、このケースでは、セル内改行の個数3に、1を加えた 4行分の数式バーの高さを確保しないと、すべての文字が表示されない、ということですね。

(^-^)

Page 1 / 212

アーカイブ

  • facebook
  • twitter