◆[マクロ]マウスクリックでセルに着色
下記のようなマクロで、セルをクリック(ポイント)するだけで、着色することができます。サンプルは、そのうちアップします。
別途パレットを作成して、そこから色を指定(スポイトのような機能)をアドオンすれば、立派な(?)ペイントツールになります。
・・・そこまではエクセルを逸脱しすぎますが、まずはガントチャートもどき作成などのエッセンスには使えるかと。後日、もうすこし機能拡張したものを再アップします。
蛇足ですが、ガントチャートもどきも、(開始と終了)日付を入力するだけでセルに着色できるようにできるサンプルもそのうちアップします。
'=========================================
' セルの色番号を調べる
Sub CheckColor()
Sheets("sample001").Select
Message = "色番号を調べたいセルをA1形式で入力してください。"
Title = "調べたいセル?"
Cell = InputBox(Message, Title) 'インプットボックスで入力
ColorNumber = Range(Cell).Interior.ColorIndex '色番号を調べる
Title = Cell & "セルの色番号は"
If ColorNumber = -4142 Then
Message = "なし(-4142)"
Else
Message = ColorNumber
End If
Message = Message & "です"
Style = vbInformation
MsgBox Message, Style, Title 'メッセージボックスで答える
End Sub
'=========================================
' マウスダウンしたセルの色を変更
Private Sub Worksheet_SelectionChange(ByVal Target As Range) '選択範囲を変更したときに実行
If Target.Column <> 0 Then 'A列なら
now_row = Target.Row '行番号を取得する
Dim s As Range
Dim i As Integer, a As Integer
Set s = SelectionFor i = 1 To s.Columns.Count
For j = 1 To s.Rows.Count
c = s.Cells(j, i).Address
ColorNum = Range(c).Interior.ColorIndex
' Range(c).Interior.ColorIndex = 8
If ColorNum = -4142 Then
Range(c).Interior.ColorIndex = 8
' メッセージ = "なし(-4142)"
Else
Range(c).Interior.ColorIndex = -4142
' メッセージ = ColorNum
End If
' メッセージ = メッセージ & "です"
' スタイル = vbInformation
' MsgBox メッセージ, スタイル, タイトル 'メッセージボックスで答える
Next j
Next i
End If
End Sub
'=========================================
◆[ショートカット]プルダウンの選択
入力規則でリストになっているプルダウンの値を選択するには、
ALT+↓(カーソルキーの下)
で、候補リストが表示されるので、カーソル移動してENTER。
これもWindows標準なので、IEなどのブラウザ上のプルダウンフォームでも同様です。
◆[ショートカット]シートの追加
SHIFT+F11
で現在シートの左側に新規シートを追加することが可能です。
◆[ショートカット]列、行の一括選択
列(縦)を一括で選択したい場合、
CTRL+Space
で現在列を選択可能です。
行(横)の一括選択は、
SHIFT+Space
ですが、カナ入力モードの場合、無効なので注意。
→ IME標準がカナ入力モード時のSHIFT+Spaceが半角スペース入力になってしまうため。
◆[ショートカット]ブックの切り替え、シートの移動
複数ブック(ファイル)を開いている場合、
CTRL+TAB
で、次のブックに切り替えることができます。
SHIFT+CTRL+TAB
なら、逆順(3つ以上開いている場合)の切り替え。
シートの移動は
CTRL+PageUP、CTRL+PageDown
で可能です。
シートの移動のショートカットは、Windows標準なので、タブが含まれるウィンドウなら、大半が有効です。
◆[ショートカット]セル編集モード
F2 で現在セルの編集モードになります。
ダブルクリックでも良いですが・・・
ちなみに F2 は、Windows標準ショートカットなので、ファイル名の変更なども F2 で可能です。
◆[ショートカット]直前操作の繰り返し
CTRL+Y または F4 で直前操作の繰り返しができます。
セルの統合を複数回実施するときなどに便利。
CTRL+Z でアウンドゥ(やり直し)実施後の CTRL+Y または F4 は、リドゥ(やり直しのやり直し)機能になります。
ちなみにこの機能は MS Office共通の機能なので、Wordでも同様です。PowerPointは直前操作の繰り返しは不可。(リドゥは可能)
◆[ショートカット]セルの書式設定
CTRL+1(テンキー不可)で「セルの書式設定」ウィンドウが開きます。
◆[ショートカット]本日日付の入力
CTRL+;(セミコロン)で本日日付が入力できます。
CTRL+:(コロン)で現在時刻が入力できます。
◆【書式】文字列+数字+文字列から数字のみを取り出す方法
A1セルに 100g や 500ml などと単位が直接入っている場合に、数値のみを抜き出すには、以下のような式を書きます。
=MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&1234567890)),LEN(A1)*10-SUM(LEN(SUBSTITUTE(A1,{0,1,2,3,4,5,6,7,8,9},))))
タイトルにあるとおり、仮に文字列が先頭にある場合でも数値を抜き出すことが可能です。
→ ISBN-49123456-N の場合でも「49123456」が抽出できるという意味
◆[書式]日付データを曜日や元号表示する方法
セルに2004年4月1日(木)となる「2006/4/1」が入っている場合に、
「セルの書式設定」→「表示形式」で「ユーザー定義」を選択し、「種類」のテキストボックスに下記[]内の文字を入力。
元号表示[ge]→H16
曜日表示[aaa]→木
曜日表示[aaaa]→木曜日
曜日表示[ddd]→Thu
曜日表示[dddd]→Thursday
【応用】
同様に「種類」のテキストボックスに以下のように入力すると 2006/4/1(木) と表示される。
yyyy/m/d(aaa)
【蛇足】
察しの良い人なら気づくと思いますが、以下のように mm、dd とすると0(ゼロ)パディングされた年月日になります。
yyyy/mm/dd(aaa)
区切り文字 /(スラッシュ) も任意に変更可能です。
◆[数式]年齢を計算する方法
生年月日(例えば 1972/7/19)がA1セルに入っている場合に、年齢(数え年ではない)を計算する方法は、以下のとおり。
【年齢】
=DATEDIF(A1,TODAY(),"y")
【月数】
=DATEDIF(A1,TODAY(),"m")
【日数】
=DATEDIF(C21,TODAY(),"d")
◆[数式]ファイル名/シート名を取得する方法
エクセルでここまでやるか?という感じもしますが、場合によってはけっこう便利に使えると思います。
【シート名】
=MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31)
以下はファイル名
【拡張子付き】
=MID(CELL("filename",$A$1),FIND("[",CELL("filename",$A$1))+1,FIND("]",CELL("filename",$A$1))-FIND("[",CELL("filename",$A$1))-1)
※上記、すべて半角です。WordPress投稿で他と同じように記述しても、なぜか一部のダブルクォートのみ全角になってしまいます。
【拡張子無し】
=MID(CELL("filename",$A$1),FIND("[",CELL("filename",$A$1))+1,FIND("]",CELL("filename",$A$1))-FIND("[",CELL("filename",$A$1))-5)
【フルパス】
=CELL("filename",$A$1)
◆[数式]セルの型を判別する方法
A1セルの型を判別したい場合、以下をB1セルなどに入力すると、日付フォーマット(あくまでもセルの書式設定の話)の場合に”×”が表示されます。
=IF(LEFT(CELL("format",A1),1)="D","×","")
※ただし、判別式挿入後に参照先(この場合A1セル)の書式を変更しても動的には変更されないので注意!
→ 式を入力したセルを1度編集状態(F2キーかダブルクリック)にする必要があるみたい。(解決方法を知っている人は教えてください)
なお、CELL関数の第1パラメータは、このほかにも”color”などがあります。CELL関数が返す値も含め、詳しくはヘルプを参照してください。
—
バージョン:Excel2002
No comments yet. You should be kind and add one!
By submitting a comment you grant typista a perpetual license to reproduce your words and name/web site in attribution. Inappropriate and irrelevant comments will be removed at an admin’s discretion. Your email is used for verification purposes only, it will never be shared.