人生は楽しんだもん勝ち‼

転職活動中の25歳です!ⅠTの勉強や転職活動について書きます。

メモ Excel VBA 基礎 罫線(Border)

Range.Borders でセルの罫線を扱う。

 

Range("セル範囲").Borders.プロパティ = 設定値

もしくは、

Range("セル範囲").Borders(Index).プロパティ = 設定値

 

Indexの中身

xlDiagonalDown 範囲内の各セルの左上隅から右下への罫線
xlDiagonalUp 範囲内の各セルの左下隅から右上への罫線
xlEdgeBottom 範囲内の下側の罫線
xlEdgeLeft 範囲内の左端の罫線
xlEdgeRight 範囲内の右端の罫線
xlEdgeTop 範囲内の上側の罫線
xlInsideHorizontal 範囲外の罫線を除く、範囲内のすべてのセルの水平罫線
xlInsideVertical 範囲外の罫線を除く、範囲内のすべてのセルの垂直罫線

 Range("セル範囲").borders.プロパティとした場合は、xlEdgeBottom, xlEdgeLeft, xlEdgeRight, xlEdgeTop, xlInsideHorizontal, xlInsideVerticalこれらすべてに同一の設定をしたことになる。

 

Borders のプロパティ

LineStyle 罫線の種類 xlNone または xlLineStyleNone なし
xlContinuous 実線
xlDash 破線
xlDashDot 一点鎖線
xlDashDotDot ニ点鎖線
xlDot 点線
xlDouble 2 本線
xlLineStyleNone 線なし
xlSlantDashDot 斜破線
Color 罫線の色 RGB値を表す長整数  
ColorIndex 罫線の色 1~56 2003までの56色カラーパレットのインデックス
何色か分かりづらいのでColorを使ったほうが良い
Weight 罫線の太さ xlHairline 非常に細い線 (最も細い罫線)
xlMedium 普通
xlThick 太線 (最も太い罫線)
xlThin 細線

 

 罫線をもう一つの方法

Range.BorderAroundメソッド

外枠に対して一度に罫線を引く。

ーーーーーーーーーーーーーーーーーーー

Sub work()
    Range("B2:D4").BorderAround LineStyle:=xlContinuous, Weight:=xlMedium, Color:=vbBlack
End Sub

ーーーーーーーーーーーーーーーーーーー

 

ーーーーーーーーーーーーーーーーーーー

Sub work2()
Range("B6:D8").Borders.LineStyle = xlContinuous
Range("B6:D8").BorderAround Weight:=xlThick
End Sub

 ーーーーーーーーーーーーーーーーーーー

一か所ずつ罫線を引くより、一度にまとめて記述した方が処理速度が速いらしい。

 

メモ Excel VBA 基礎 配置.Alignment フォント,font 塗りつぶし,Interior

セル内での値を表示する位置を指定する。

 

横位置の指定(センター)

Range("セル範囲").HorizontalAlignment = xlCenter

 

縦位置の指定(左揃え)

Range("セル範囲")VerticalAlignment = xlLeft

 

セルの結合

Range("セル範囲").MargeCells = True

または

Range("セル範囲").Marge

 

セルで表示する文字のフォントを指定する。

 

色定数

Range("セル範囲").Font .Color = vbRed '(赤)

Range("セル範囲").Font .Color = vbBlack '(黒)

Range("セル範囲").Font .Color = vbWhite '(白)

*他の色もある

 

RGB関数

red, green, blue それぞれの数値を0~255で指定

 

Range("セル範囲").Font .Color = RGB(255, 0, 0) '(赤)

Range("セル範囲").Font .Color = RGB(0, 0, 0) '(黒)

Range("セル範囲").Font .Color = RGB(255, 255, 255) '(白)

 

色の指定を戻す

Range("セル範囲").Font.ColorIndex = xlAutomatic

 

指定するセルを塗りつぶす。

 

色定数

Range("セル範囲").Interior .Color = vbRed '(赤)

Range("セル範囲").Interior .Color = vbBlack '(黒)

Range("セル範囲").Interior .Color = vbWhite '(白)

 

RGB関数

red, green, blue それぞれの数値を0~255で指定

 

Range("セル範囲").Interior .Color = RGB(255, 0, 0) '(赤)

Range("セル範囲").Interior .Color = RGB(0, 0, 0) '(黒)

Range("セル範囲").Interior .Color = RGB(255, 255, 255) '(白)

 

塗りつぶしなし

Range("セル範囲").Interior .ColorIndex = xlNone

 

 

 

 

メモ Excel VBA 基礎 セルの書式(表示形式,NumberFormatLocal)

マクロでの表示形式の指定

 

Range.NumberFormatLocal = "表示書式指定文字"

 

Range.NumberFormatLocal = "@"  文字列

Range.NumberFormatLocal = "0.00" 小数点2桁固定

Range.NumberFormatLocal = "yyyy/mm/dd" 日付 月と日は2桁

 

 

書式指定文字 説明
G/標準 標準の表示形式です。
_(アンダーバー) _(アンダーバー)に続く文字の幅だけ文字間隔を空けることができます。
" 「"」で囲まれた文字列を表示します。
入力値を文字列としてそのまま表示します。
# 小数点のいずれの側でも表示形式の # 記号の数より少ない場合に 0 は表示されません。
0 数値の桁数が表示形式の 0 の桁数より少ない場合に、表示形式の桁まで 0 が付加されます。
? 有効桁以外の 0 にスペースが挿入されるため、列内で小数点の位置が整列されます。
. (ピリオド) 数値に小数点を表示します。
,(カンマ) 数値に桁区切り記号を表示します。
yy 年を2桁の数値で表示します。
yyyy 年を4桁の数値で表示します。
g 元号のアルファベット1文字が表示されます。M,T,S,Hが表示できます。
gg 元号の1文字が表示されます。明,大,昭,平
ggg 元号が表示できます。明治,大正,昭和,平成
e 年数が1桁で表示されます。
m 月数を表示します。1~12が表示できます。
mm 01~12が表示できます。1~9は01~09と0付で表示されます。
mmm Jan~Dec
mmmm January~December
mmmmm J~D頭文字が表示されます。
d 日数を表示します。1~31が表示できます。
dd 01~31が表示できます。
ddd Sun~Sat
dddd Sunday~Saturday
aaa 日~土
aaaa 日曜日~土曜日
h 時を表示します。0~23が表示できます。
hh 00~23が表示できます。
m 分を表示します。0~59が表示できます。
mm 00~59が表示できます。
s 秒を表示します。0~59が表示できます。
ss 00~59が表示できます。
[h] 24時を超える時間を表示します。
[m] 60分を超える分を表示します。
[s] 60秒を超える秒を表示します。

 

一度設定したら変更することがないのなら、マクロではなくシートにあらかじめ設定しておいたほうが効率的。

マクロで書式を指定するのは、特殊な部分だけ。

 

最後にLocalがつかない、NumberFormatというプロパティもある。

同じ書式指定文字でも表示に違いがでる場合がある。

違いはPC環境に依存するかどうか。

 

Localと付くものは、PC環境に依存する設定を有効にする場合に使用する。

 

基本はNumberFormatLocalを使用すればいいらしい。

 

 

 

メモ Excel VBA 基礎 セル・行・列の削除・挿入

単一セル、または複数セルの削除・挿入について

 

 

セルの削除

 

左方向にシフト

ーーーーーーーーーーーーーーーーーーー

Cells(行,列).Delete Shift:=xlToLeft

ーーーーーーーーーーーーーーーーーーー

 

上方向にシフト

ーーーーーーーーーーーーーーーーーーー

Cells(行,列).Delete Shift:=xlUp

ーーーーーーーーーーーーーーーーーーー

 

行全体(指定セルが含まれる行全体)

ーーーーーーーーーーーーーーーーーーー

Cells(行,列).EntireRow.Delete

ーーーーーーーーーーーーーーーーーーー

 

列全体(指定セルが含まれる列全体)

ーーーーーーーーーーーーーーーーーーー

Cells(行,列).EntireColumn.Delete

ーーーーーーーーーーーーーーーーーーー

 

 

セルの挿入

 

右方向にシフト

ーーーーーーーーーーーーーーーーーーー

Cells(行,列).Insert Shift:=xlToRight

ーーーーーーーーーーーーーーーーーーー

 

下方向にシフト

ーーーーーーーーーーーーーーーーーーー

Cells(行,列).Insert Shift:=xlToDown

ーーーーーーーーーーーーーーーーーーー

 

行全体(指定セルが含まれる行全体)

ーーーーーーーーーーーーーーーーーーー

Cells(行,列).EntireRow.Insert

ーーーーーーーーーーーーーーーーーーー

 

列全体(指定セルが含まれる列全体)

ーーーーーーーーーーーーーーーーーーー

Cells(行,列).EntireColumn.Insert

ーーーーーーーーーーーーーーーーーーー

 

Shift:= は省略可能だが、必ず指定するべき。

省略した場合、選択セル範囲の形によって自動で判定される。

 

行の削除

ーーーーーーーーーーーーーーーーーーー

Rows(行位置).Delete

ーーーーーーーーーーーーーーーーーーー

 

行の挿入

ーーーーーーーーーーーーーーーーーーー

Rows(行位置).Insert

ーーーーーーーーーーーーーーーーーーー

 

上記はCells(行,列).EntireRowと同じ

 

 

列の削除

ーーーーーーーーーーーーーーーーーーー

Columns(行位置).Delete

ーーーーーーーーーーーーーーーーーーー

 

列の挿入

ーーーーーーーーーーーーーーーーーーー

Columns(行位置).Insert

ーーーーーーーーーーーーーーーーーーー

 

上記はCells(行,列).Entirecolumnと同じ

 

 

書き方はわかったけど、どうゆうときに使うのだろう。。。

 

メモ Excel VBA 基礎 ブック・シートの選択、セル・行・列の選択

アクティブブック、アクティブシート、アクティブセルとは

 

文字を打ち、Enterキーを押したときに入力されるブックのシートのセル。

=アクティブブックのアクティブシートのアクティブセル

 

アクティブセルと選択セルは別物。

アクティブセルは常に1つ。

選択セルは複数選択できる。

 

A1~B5を選択したときのアクティブセルはA1。

選択セルはA1~B5の10個のセル。

 

セルの選択

Range("セル番地").Select

もしくは、

Cells(行,列).Select

 

セルをアクティブにする

Range("セル番地").Activate

もしくは、

Cells(行,列).Activate

 

SelectとActivateは、複数セルを選択している場合に違ってくる。

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

行の選択

Rows(行位置).Select

列の選択

Columns(列位置).Select

 

 

 

メモ Excel VBA 基礎 メッセージボックス(InputBox関数)

メッセージとテキストボックスを表示。

ユーザが入力した文字列を入手できる。

 

メッセージのみを表示する場合

ーーーーーーーーーーーーーーー

Sub work()
  Dim strIn As String
  strIn = InputBox("何か入力してください")
End Sub

ーーーーーーーーーーーーーーー

 

複数行で表示する場合

ーーーーーーーーーーーーーーー

Sub work2()
  Dim strIn As String
  strIn = InputBox("何か入力してください。" & vbLf & vbLf & "入力サンプルをここに書いてください。")
End Sub

ーーーーーーーーーーーーーーー

 

メッセージ、タイトル、既定値を設定した場合。

ーーーーーーーーーーーーーーー

Sub work3()
  Dim strIn As String
  strIn = InputBox("何か入力してください", "ユーザー入力", "規定文字")
End Sub

ーーーーーーーーーーーーーーー

 

何も入力されなかったか、「キャンセル」ボタンが押された場合の対処。

ーーーーーーーーーーーーーーー

Sub work4()
  Dim strIn As String
  strIn = InputBox("何か入力してください。", "タイトル", "ここに入力")
  If strIn = "" Then
    MsgBox "何も入力されていません。"
  End If
End Sub

ーーーーーーーーーーーーーーー

 

メモ Excel VBA 基礎 メッセージボックス(MsgBox関数)

メッセージを表示するダイアログボックス(小さな画面)を表示する。

「はい」「いいえ」や「OK」「CANCEL」等を選択し、選択結果を受け取ることもできる。

 

「できました」というメッセージを表示する。

ーーーーーーーーーーーーーーー

Sub work()
       MsgBox "できました"
End Sub

ーーーーーーーーーーーーーーー

 

「できました」「素晴らしい」というメッセージを改行して表示する。

ーーーーーーーーーーーーーーー

Sub work2()
  MsgBox "できました" & vbLf & "素晴らしい"
End Sub

ーーーーーーーーーーーーーーー

 

タイトルを表示する。

ーーーーーーーーーーーーーーー

Sub work3()
  MsgBox "できました" , vbOKOnly,  "タイトル"
End Sub

ーーーーーーーーーーーーーーー

 

「完了?」というメッセージを表示し、「Yes」が押されると「完了している」、「No」が押されると「完了していない」というメッセージを表示する

ーーーーーーーーーーーーーーー

Sub work4()
  Dim rtn As Integer
  rtn = MsgBox("完了?", vbYesNo + vbQuestion + vbDefaultButton2, "確認")
  Select Case rtn '押されたボタンの確認
    Case vbYes
      MsgBox "完了している"
    Case vbNo
      MsgBox "完了していない"
  End Select
End Sub

ーーーーーーーーーーーーーーー