<   2006年 03月 ( 7 )   > この月の画像一覧

テキストボックス内を任意の行間

テキストボックス内に文字を多数入力すると、通常は下図のように入って行く。
e0080122_1012481.gif

ピタッとした行間で文章が読みづらい場合は、テキストボックスの書式設定を使用してこれを任意の幅に変えてみる。
e0080122_10151170.gif

テキストボックスをダブルクリックなどして、テキストボックスの書式設定を表示させる。
配置タブ → 縦位置(均等割り付け) に変更する。
複数行の場合、両端揃えでもあまり結果は変わりないが。。。
e0080122_10211126.gif

このように、テキストボックス内での行間が広がる。
もちろん後でテキストボックスを縦方向にサイズ変更しても、その範囲内で行間が広がるので便利だ。
[PR]
by slayer0210 | 2006-03-20 10:23 | エクセル一般

テキストボックスのサイズ調整

文字を入力する際に、セルに入力するのではなく、テキストボックスに文字を入力して
それを自由にレイアウトする場合が多々ある。
テキストボックスボタンをクリックして、シート上でドラッグするとテキストボックスは作成されるが
その際のテキストボックスは、塗りつぶしの色が白、線の色は自動になってると思う。

しかし、シート上でドラッグするのではなく、クリックして作成したテキストボックスは、塗りつぶしの色がなし、線の色もなしになっている。(自分のPCだけだろうか・・・?)
オマケに文字列の長さに応じて自動でサイズも変更してくれるので非常に便利だ。
e0080122_821193.gif

[PR]
by slayer0210 | 2006-03-17 08:22 | エクセル一般

任意でシート名を並べ替える

先日の話。自分が扱ってるエクセルブックで、やたらにシート数が多いものがある。
自分なりの使い勝手を考えて、任意で並べ替えようと思い、簡単なマクロを作ってみた。

Sub シート名を表示()
 Dim zWS As Worksheet
 Dim myWS As Worksheet
 Set zWS = Sheets.Add(before:=Sheets(1))
 zWS.Name = "暫定"
   For Each myWS In Worksheets
     If myWS.Name <> "暫定" Then
       Sheets("暫定").Range("a65536").End(xlUp).Offset(1) = myWS.Name
     End If
   Next
    Rows(1).Delete
End Sub

とりあえず、上記のマクロを実行すれば下図のように現在のシート名が暫定シートに表示される。
その後、暫定シートのA列に表示されたシート名を任意で並べる。
e0080122_7284153.gif

並べ替えが完了したら、以下のマクロを実行してみた。

Sub シートの並べ替え()
 Dim myWS As Worksheet
 Dim zWS As Worksheet
 Dim i As Integer
  Set zWS = Sheets("暫定")
    For i = 1 To zWS.Range("A1").CurrentRegion.Rows.Count
      Sheets(zWS.Cells(i, 1).Value).Move before:=Sheets(i)
    Next
   Application.DisplayAlerts = False
     zWS.Delete
   Application.DisplayAlerts = True
End Sub
e0080122_736351.gif

任意にシート名が並べ替えられた。
ま、構文的にどうかは別として目的のものが出来たのでよしとする。
[PR]
by slayer0210 | 2006-03-16 07:38 | マクロ

IndexとMatchを使用した表

Index関数、Match関数の組み合わせは意外と便利だったりする。
今回は、下図のような料金表を作ってみた。
e0080122_9593626.gif

C11に行の検索値である任意のメニューを入力し(この場合はカツカレー)
D11に列の検索値の"普通盛"や"大盛"などの文字を入力する。
これらの文字列を表から検索し、料金を表示させてみた。

E11に『=INDEX(C3:E9,MATCH(C11,B3:B9,0),MATCH(D11,C2:E2,0))』と入力すれば、料金が表示されてくる。
ちょっと地味だが、意外と便利だ。
[PR]
by slayer0210 | 2006-03-10 10:06 | エクセル一般

市外局番を括弧の中に

今現在、住所録をまとめているが、その時に「市外局番だけは括弧の中に表示させたいが・・・」と言われた。
今までは『×××-×××-××××』のような形式で表示されていて、それを『(×××)×××-××××』
に変更せねばいけないようだ。
e0080122_14523524.gif

こんなときはSUBSTITUTE関数を使うと便利だった。
上図で簡単に説明すると、任意のセル(この場合はD3)に
="(" & SUBSTITUTE(C3,"-",") ",1)』と数式を入れる。
すると、市外局番が見事に括弧の中に納まった。

ここでポイントなのは、この数式で指定している『1』だが、これは検索対象1番目の文字列だけを置き換える、という意味だ。
[PR]
by slayer0210 | 2006-03-09 15:00 | エクセル一般

5円単位で表示する

最近、お金のやり取り時に「1円玉があると面倒くさいから、最小単位を5円にしませんか?」との提案があった。
確かに今までは税込価格に直すと、かなりハンパな金額などが出てきてた。
e0080122_2351528.gif

こんな場合はMROUND関数を使うと便利だ。
式は、『=MROUND(数値,倍数)』 というような感じだ。
今回は5円単位にしたかったので、倍数に5を入れた。

ただ、この関数を使用する場合は、分析ツール アドインを組み込まなければならない。
e0080122_23132080.gif

メニューバー「ツール」 → 「アドイン」 で上図のダイアログが開くので分析ツールにチェックを入れる。
[PR]
by slayer0210 | 2006-03-07 23:15 | エクセル一般

関数でシート名を返す

ちょっと前の話だが、「任意のセルにシート名を表示させたいんだけど・・・」と頼まれたことがあった。
最近ではマクロ等を使って求めるケースが多かったが、初心に戻って関数で求めてみた。
シート名などを求める場合はCELL関数を使用すると便利だ。
=CELL("filename")』この式を求めたいセルに入力する。
すると少々長いがシート名が絶対パスの形で表示される。
e0080122_17463115.gif

ま、絶対パスのままでも構わないのだが、シート名だけって場合にはちょっと加工して
=MID(B2,FIND("]",B2)+1,LEN(B2)-FIND("]",B2))』という式を立ててみた。
これだとシート名だけが表示されてスッキリしている。
勿論、式一つでも大丈夫だが、あまりにも長々とした数式は自分的に興ざめするので、B2を作業セルに見立てた。
[PR]
by slayer0210 | 2006-03-04 17:50 | エクセル一般