セル内の文字を別のセルに表示する

エクセルで作業していると、セルの中にどのくらいの文字が入っているのかわからない、あるいは多くの文字が入力されているが見えないということがある。

最近そんな経験をしてなんとかならないものかとネットを検索していたら、あった。

セルをクリックする(アクティブなセル)をある場所に表示させるというものだ。ここではA1のセルを幾つかのセルと結合して長く表示できるようにしておく。

文字を縮小して全体を表示する

A5のセルは全体を縮小して表示するにしているので、長い文字列は表示できない。直接入力したものなら数式バーに表示もできるが、関数で表示している場合は値ではなく関数の表示しかできない。

文字が隠れる

また上の例ではA4のセルの値がB4の値があるために、隠れている。一見「お」までしか入力されていないようだが、数式バーでは多くの文字が見える。これも入力されている文字なら問題ないが、関数では勘違いしてしまう。

OKWEBアクティブセルを参照したいを参考に

シート名を右クリック

シート名を右クリックして

コード記入

コード記入に下記のように入力する

$latex

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range(“A1”).Value = ActiveCell.Value
End Sub

$

これでマクロ保存形式でエクセルファイルを保存すると、アクティブセル(クリックしたセル)がA1のセルに表示できるようになる。

セルの値に語句を追加してをシート名に

毎月作るエクセルのシート。
いちいちシート名を変えるのは面倒なこと。
そんなときに、セルの値を利用して自動的にシート名をつけることができれば、同じシートをコピーして増やしていっても、楽である。

シート名のタブの所で、右クリックして表示されるメニューから「コードの表示」をクリック。
表示されるファイル名sheet(番号)(コード)という白紙の窓の中に以下の記述をコピーして貼り付ける。

D2には月を示す数字を入力している。D2はセルの書式設定で、ユーザー定義>「G/標準"月"」、として「6」と数字を入れるだけだが、「6月」と表示されることになる。

シート名は「○月」という表示にするために、D2の値に「月」をプラスしている。下のコードの「&"月"」の部分である。
 

///////////

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ERR_HANDLER
If Target.Address(False, False) = "D2" Then
ActiveSheet.Name = Range("D2").Value & "月"
End If
Exit Sub
ERR_HANDLER:
MsgBox "現在のD2セルの値はシート名にできません。"
End Sub

///////////////

実際に、D2の値あるいは文字を変更すると、シートの名前が変わっていくことを確認することができる。