行を非表示にする為には、行全体のRangeオブジェクトのHiddenプロパティにTrueを設定
する :
行Rangeオブジェクト.Hidden = True
非表示になった行を再表示する為には、HiddenプロパティにFalseを設定する :
行Rangeオブジェクト.Hidden = False
例えば、Activesheetの20~26行目を非表示にする場合は、
Activesheet.Rows("20:26").Hidden = True
再表示するには
Activesheet.Rows("20:26").Hidden = False
とそれぞれ記述する。列の場合についても同様に、非表示、再表示はそれぞれ下記の通り :
列Rangeオブジェクト.Hidden = True
列Rangeオブジェクト.Hidden = False
Excel 2010/2013 VBA fun!!!
2015年4月13日月曜日
行・列の削除
行を削除するには、(前項の)取得した行全体のRangeオブジェクトのDeleteメソッドを使用
する :
取得した行Rangeオブジェクト.Delete
例えば、Activesheetの20~26行目を削除する場合は
Activesheet.Rows("20:26").Delete
と記述する。列の削除も同様に、
取得した列Rangeオブジェクト.Delete
で列全体を削除することができる。ActivesheetのA~G列を削除する場合は
Activesheet.Columns("A:G").Delete
と記述することで列を削除することができる。
する :
取得した行Rangeオブジェクト.Delete
例えば、Activesheetの20~26行目を削除する場合は
Activesheet.Rows("20:26").Delete
と記述する。列の削除も同様に、
取得した列Rangeオブジェクト.Delete
で列全体を削除することができる。ActivesheetのA~G列を削除する場合は
Activesheet.Columns("A:G").Delete
と記述することで列を削除することができる。
2015年4月12日日曜日
行・列の取得
ワークシートの行全体を取得する場合は
Set Range変数 = Worksheetオブジェクト.Rows(行)
と記述する。20行目のみを取得する場合は
Set rng = Activesheet.Rows("20")
20~26行目を取得する場合は
Set rng = Activesheet.Rows("20:26")
と、それぞれ記述する(rngはRange変数)。また、列全体を取得する場合は
Set Range変数 = Worksheetオブジェクト.Columns(列)
と記述する。行の場合同様、A列のみ取得する場合は
Set rng = Activesheet.Columns("A")
A~G列を取得する場合は
Set rng = Activesheet.Columns("A:G")
と、それぞれ記述する(rngはRange変数)。
Set Range変数 = Worksheetオブジェクト.Rows(行)
と記述する。20行目のみを取得する場合は
Set rng = Activesheet.Rows("20")
20~26行目を取得する場合は
Set rng = Activesheet.Rows("20:26")
と、それぞれ記述する(rngはRange変数)。また、列全体を取得する場合は
Set Range変数 = Worksheetオブジェクト.Columns(列)
と記述する。行の場合同様、A列のみ取得する場合は
Set rng = Activesheet.Columns("A")
A~G列を取得する場合は
Set rng = Activesheet.Columns("A:G")
と、それぞれ記述する(rngはRange変数)。
2015年4月11日土曜日
セルのシリアル値の取得
日付の場合、1900年1月1日を「1」として、以降1日につき1ずつ加算した値をシリアル値
という。例えば、2015年4月10日のシリアル値は「42104」となる。このシリアル値を(使う
場面はそれ程ないが)を取得するにはRangeオブジェクトのValue2プロパティを使用する :
変数 = Rangeオブジェクト.Value2
尚、Value2プロパティに値を設定することも可能だが、
Range("B10").Value2 = 42104
としても、セルには日付が表示されず、数字の「42104」が表示される。また、文字列や
数値の場合はValueプロパティの値とValue2プロパティの値は同一となる。
という。例えば、2015年4月10日のシリアル値は「42104」となる。このシリアル値を(使う
場面はそれ程ないが)を取得するにはRangeオブジェクトのValue2プロパティを使用する :
変数 = Rangeオブジェクト.Value2
尚、Value2プロパティに値を設定することも可能だが、
Range("B10").Value2 = 42104
としても、セルには日付が表示されず、数字の「42104」が表示される。また、文字列や
数値の場合はValueプロパティの値とValue2プロパティの値は同一となる。
2015年4月10日金曜日
セルに表示されている値の取得
数値や日付の場合、セルに設定されている値と表示されている内容が異なる場合がある。
例えば、下図のように、小数点以下の桁数を二ケタまでしか表示していないセルがあった
とすると、設定されている値と表示されている数字は異なったものとなる :
上記の場合のように、セルに表示されている内容を知りたい場合は、Rangeオブジェクト
のTextプロパティを使用する :
変数 = Rangeオブジェクト.Text
上の例の場合、Textプロパティで取得される値は「1.24」、Valueプロパティの値は「1.235」
である。尚、Textプロパティは読み取り専用のプロパティなので、値を代入することはでき
ないので要注意。因みに、文字列の場合は、試してみた限りではValueプロパティとText
プロパティで取得できる値は同じであった。
例えば、下図のように、小数点以下の桁数を二ケタまでしか表示していないセルがあった
とすると、設定されている値と表示されている数字は異なったものとなる :
上記の場合のように、セルに表示されている内容を知りたい場合は、Rangeオブジェクト
のTextプロパティを使用する :
変数 = Rangeオブジェクト.Text
上の例の場合、Textプロパティで取得される値は「1.24」、Valueプロパティの値は「1.235」
である。尚、Textプロパティは読み取り専用のプロパティなので、値を代入することはでき
ないので要注意。因みに、文字列の場合は、試してみた限りではValueプロパティとText
プロパティで取得できる値は同じであった。
セルへの値の設定と取得
セルに値を設定する場合は、RangeオブジェクトのValueプロパティを使用する :
Rangeオブジェクト.Value = 値
逆に設定された値を取得したい場合もValueプロパティを使用する :
変数 = Rangeオブジェクト.Value
セルの値の設定と取得をするサンプルコードを下記に記す。
Sub SampleSetAndGetRangeValue
Range("B2").Value = "abcdefghijklmnopqrstuvwxyz"
MsgBox Range("B2").Value
End Sub
上記コードの実行結果、メッセージボックスにはaからzの英小文字の羅列
が表示される。
Rangeオブジェクト.Value = 値
逆に設定された値を取得したい場合もValueプロパティを使用する :
変数 = Rangeオブジェクト.Value
セルの値の設定と取得をするサンプルコードを下記に記す。
Sub SampleSetAndGetRangeValue
Range("B2").Value = "abcdefghijklmnopqrstuvwxyz"
MsgBox Range("B2").Value
End Sub
上記コードの実行結果、メッセージボックスにはaからzの英小文字の羅列
が表示される。
セルの取得
ひとつのセル(オブジェクト)を取得するには下記の二通りの書き方がある :
Set Range変数 = Worksheetオブジェクト.Range(アドレス)
Set Range変数 = Worksheetオブジェクト.Cells(RowIndex, ColumnIndex)
前者の記述の方法の場合、ひとつのセルを取得する場合は
Application.Activesheet.Range("A1")
のように記述する。A1セルからF6セルまで、のようにセルを範囲で取得したい場合は
Application.Activesheet.Range("A1:F6")
と記述する。
Set Range変数 = Worksheetオブジェクト.Range(アドレス)
Set Range変数 = Worksheetオブジェクト.Cells(RowIndex, ColumnIndex)
前者の記述の方法の場合、ひとつのセルを取得する場合は
Application.Activesheet.Range("A1")
のように記述する。A1セルからF6セルまで、のようにセルを範囲で取得したい場合は
Application.Activesheet.Range("A1:F6")
と記述する。
登録:
投稿 (Atom)