ワークブックにシートが存在するかチェックする関数
パラメータは、ワークブックのオブジェクトとシート名
パラメータで渡したワークブックに、パラメータで渡したシート名が存在する場合にtrueが返却される。存在しない場合は、falseが返却される。
Public Function sheetExist(book As Workbook, name As String)
Dim ws As Worksheet
Dim flag As Boolean
For Each ws In book.Worksheets
If ws.name = name Then
flag = True
Exit For
End If
Next ws
sheetExist = flag
End Function
シートを追加する処理などでチェックをしておくと、エラーを回避できます。
2011年7月2日土曜日
2011年6月28日火曜日
Excel シートの存在チェック
Public Function sheetExist(name As String)
Dim ws As Worksheet
Dim flag As Boolean
For Each ws In Worksheets
If ws.name = name Then
flag = True
Exit For
End If
Next ws
sheetExist = flag
End Function
Dim ws As Worksheet
Dim flag As Boolean
For Each ws In Worksheets
If ws.name = name Then
flag = True
Exit For
End If
Next ws
sheetExist = flag
End Function
2011年6月21日火曜日
Excel オートシェイプ メモ用
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 54#, 13.5, 54#, 13.5). _
Select
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 43
Selection.ShapeRange.Fill.Transparency = 0#
Selection.ShapeRange.Line.Weight = 0.75
Selection.ShapeRange.Line.DashStyle = msoLineSolid
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.Transparency = 0#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.ForeColor.SchemeColor = 64
Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
ExecuteExcel4Macro "FORMULA(""=R[1]C"")"
Range("A1").Select
ActiveCell.FormulaR1C1 = "6/21/2011"
Range("A2").Select
ActiveSheet.Shapes("Rectangle 1").Select
Range("C4").Select
ActiveSheet.Shapes("Rectangle 1").Select
ExecuteExcel4Macro "FORMULA(""=RC"")"
Range("C6:C7").Select
Range("C7").Activate
ActiveSheet.Shapes("Rectangle 1").Select
Selection.ShapeRange.Line.Weight = 1.25
Selection.ShapeRange.Line.DashStyle = msoLineSolid
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.Transparency = 0#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.ForeColor.SchemeColor = 64
Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 43
Selection.ShapeRange.Fill.Transparency = 0#
Selection.ShapeRange.Fill.OneColorGradient msoGradientVertical, 1, 0.23
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 63#, 54#, 54#, 13.5). _
Select
Selection.ShapeRange.Line.Weight = 0.75
Selection.ShapeRange.Line.DashStyle = msoLineSolid
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.Transparency = 0#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.ForeColor.SchemeColor = 64
Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 33
Selection.ShapeRange.Fill.BackColor.RGB = RGB(255, 255, 255)
Selection.ShapeRange.Fill.Transparency = 0#
Selection.ShapeRange.Fill.Patterned msoPattern5Percent
ActiveSheet.Shapes.Range(Array("Rectangle 2", "Rectangle 1")).Select
Selection.ShapeRange.Group.Select
Select
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 43
Selection.ShapeRange.Fill.Transparency = 0#
Selection.ShapeRange.Line.Weight = 0.75
Selection.ShapeRange.Line.DashStyle = msoLineSolid
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.Transparency = 0#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.ForeColor.SchemeColor = 64
Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
ExecuteExcel4Macro "FORMULA(""=R[1]C"")"
Range("A1").Select
ActiveCell.FormulaR1C1 = "6/21/2011"
Range("A2").Select
ActiveSheet.Shapes("Rectangle 1").Select
Range("C4").Select
ActiveSheet.Shapes("Rectangle 1").Select
ExecuteExcel4Macro "FORMULA(""=RC"")"
Range("C6:C7").Select
Range("C7").Activate
ActiveSheet.Shapes("Rectangle 1").Select
Selection.ShapeRange.Line.Weight = 1.25
Selection.ShapeRange.Line.DashStyle = msoLineSolid
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.Transparency = 0#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.ForeColor.SchemeColor = 64
Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 43
Selection.ShapeRange.Fill.Transparency = 0#
Selection.ShapeRange.Fill.OneColorGradient msoGradientVertical, 1, 0.23
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 63#, 54#, 54#, 13.5). _
Select
Selection.ShapeRange.Line.Weight = 0.75
Selection.ShapeRange.Line.DashStyle = msoLineSolid
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.Transparency = 0#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.ForeColor.SchemeColor = 64
Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 33
Selection.ShapeRange.Fill.BackColor.RGB = RGB(255, 255, 255)
Selection.ShapeRange.Fill.Transparency = 0#
Selection.ShapeRange.Fill.Patterned msoPattern5Percent
ActiveSheet.Shapes.Range(Array("Rectangle 2", "Rectangle 1")).Select
Selection.ShapeRange.Group.Select
2011年6月19日日曜日
JAVA Log4J 1.2.17 を使ってみた!5
今日は、ログファイルのローテーションの方法を書きます。
環境周りは、省略します。
環境を確認したい方は、
こちらかこちらへ
注目するのは、4行目から10行目の内容
<appender ~>~</appender>
この内容がログファイルのローテーションの方法を設定している。
<appender name="File" class="org.apache.log4j.DailyRollingFileAppender">
nameには、appenderの名前を指定する。
(ファイルとコンソール出力の時と同じ)
classには、org.apache.log4j.DailyRollingFileAppenderを指定する。
このクラスがファイルに出力し、ローテーションするためのクラスとなる。
<param ~ />に設定可能な項目は、
DatePattern、File、Append、BufferedIO、BufferSize、Threshold、ImmediateFlush、Encoding
DatePattern以外は、FileAppenderで説明したので省略します。
DatePatternのvalueに設定する内容によって、ローテーションするタイミングが変わります。
ローテーションのタイミングについては、
'.'yyyy-MM 月が変わるごと
'.'yyyy-ww 週が変わるごと
'.'yyyy-MM-dd 日が変わるごと
'.'yyyy-MM-dd-a 午前と午後が変わるごと
'.'yyyy-MM-dd-HH 1時間ごと
他のparamについて詳しく知りたい方は、こちら
<layout ~></layout>
レイアウトについても、前回までに説明したので省略します。
環境周りは、省略します。
環境を確認したい方は、
こちらかこちらへ
注目するのは、4行目から10行目の内容
<appender ~>~</appender>
この内容がログファイルのローテーションの方法を設定している。
<appender name="File" class="org.apache.log4j.DailyRollingFileAppender">
nameには、appenderの名前を指定する。
(ファイルとコンソール出力の時と同じ)
classには、org.apache.log4j.DailyRollingFileAppenderを指定する。
このクラスがファイルに出力し、ローテーションするためのクラスとなる。
<param ~ />に設定可能な項目は、
DatePattern、File、Append、BufferedIO、BufferSize、Threshold、ImmediateFlush、Encoding
DatePattern以外は、FileAppenderで説明したので省略します。
DatePatternのvalueに設定する内容によって、ローテーションするタイミングが変わります。
ローテーションのタイミングについては、
'.'yyyy-MM 月が変わるごと
'.'yyyy-ww 週が変わるごと
'.'yyyy-MM-dd 日が変わるごと
'.'yyyy-MM-dd-a 午前と午後が変わるごと
'.'yyyy-MM-dd-HH 1時間ごと
他のparamについて詳しく知りたい方は、こちら
<layout ~></layout>
レイアウトについても、前回までに説明したので省略します。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="File" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="C:/log4j.log" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c - %-5m [%t] (%F:%L)%n"/>
</layout>
</appender>
<appender name="Console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c - %-5m [%t] (%F:%L)%n"/>
</layout>
</appender>
<root>
<level value="debug" />
<appender-ref ref="Console" />
<appender-ref ref="File" />
</root>
</log4j:configuration>
2011年6月18日土曜日
JAVA Log4J 1.2.17 を使ってみた!4
今日は、コンソールの出力方法を書きます。
環境周りは、省略します。
環境を確認したい方は、
こちらかこちらへ
注目するのは、10行目から14行目の内容
<appender ~>~</appender>
この内容がコンソールに出力する内容を設定している。
<appender name="Console" class="org.apache.log4j.ConsoleAppender">
nameには、appenderの名前を指定する。(ファイル出力の時と同じ)
classには、org.apache.log4j.ConsoleAppenderを指定する。
このクラスがコンソールに出力するためのクラスとなる。
<layout ~></layout>
レイアウトについては、前回説明したので省略します。
明日以降に、ログファイルのローテーションについて書きます。
環境周りは、省略します。
環境を確認したい方は、
こちらかこちらへ
注目するのは、10行目から14行目の内容
<appender ~>~</appender>
この内容がコンソールに出力する内容を設定している。
<appender name="Console" class="org.apache.log4j.ConsoleAppender">
nameには、appenderの名前を指定する。(ファイル出力の時と同じ)
classには、org.apache.log4j.ConsoleAppenderを指定する。
このクラスがコンソールに出力するためのクラスとなる。
<layout ~></layout>
レイアウトについては、前回説明したので省略します。
明日以降に、ログファイルのローテーションについて書きます。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="File" class="org.apache.log4j.FileAppender">
<param name="File" value="C:/log4j.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c - %-5m [%t] (%F:%L)%n"/>
</layout>
</appender>
<appender name="Console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c - %-5m [%t] (%F:%L)%n"/>
</layout>
</appender>
<root>
<level value="debug" />
<appender-ref ref="Console" />
<appender-ref ref="File" />
</root>
</log4j:configuration>
2011年6月17日金曜日
JAVA Log4J 1.2.17 を使ってみた!3
昨日かけなかったLog4jについて、今日も続きの内容を書こう。
環境周りは、昨日までに2回書いてるのでパスします。確認したい方は、
昨日分はこちら
一昨日分はこちら
昨日書けなかった、<layout ~>~</layout>について、
今回使ったLayoutクラスは、org.apache.log4j.PatternLayoutを使用した。
自分でログの出力フォーマットを決めることができるクラスで、
フォーマットについては、<param ~/>で設定する。
nameには、ConversionPatternを設定し、valueにフォーマットを指定する。
今回は、"%d %-5p %c - %-5m [%t] (%F:%L)%n"を設定
%dは、日付を出力
%pは、ログのレベルを出力
%cは、ログを出力したクラスを出力
%mは、メッセージの内容を出力k
%tは、スレッドを出力
&Fは、ログを出力したファイル名を出力
%Lは、ログを出力したファイルの行番号を出力
%nは、改行コードを出力
一昨日のクラスを実行して出力されるログは、下記のようになる。
環境周りは、昨日までに2回書いてるのでパスします。確認したい方は、
昨日分はこちら
一昨日分はこちら
昨日書けなかった、<layout ~>~</layout>について、
今回使ったLayoutクラスは、org.apache.log4j.PatternLayoutを使用した。
自分でログの出力フォーマットを決めることができるクラスで、
フォーマットについては、<param ~/>で設定する。
nameには、ConversionPatternを設定し、valueにフォーマットを指定する。
今回は、"%d %-5p %c - %-5m [%t] (%F:%L)%n"を設定
%dは、日付を出力
%pは、ログのレベルを出力
%cは、ログを出力したクラスを出力
%mは、メッセージの内容を出力k
%tは、スレッドを出力
&Fは、ログを出力したファイル名を出力
%Lは、ログを出力したファイルの行番号を出力
%nは、改行コードを出力
一昨日のクラスを実行して出力されるログは、下記のようになる。
2011-06-17 21:34:48,436 DEBUG sample.Test - デバッグだよ~ [main] (Test.java:11) 2011-06-17 21:34:48,436 INFO sample.Test - インフォだよ。 [main] (Test.java:12) 2011-06-17 21:34:48,436 WARN sample.Test - ワーニング! [main] (Test.java:13) 2011-06-17 21:34:48,436 ERROR sample.Test - エラーッ!! [main] (Test.java:14) 2011-06-17 21:34:48,436 FATAL sample.Test - フェイタルッ!!! [main] (Test.java:15)
2011年6月16日木曜日
JAVA Log4J 1.2.17 を使ってみた!2
昨日の続きで、今日もLog4jについて調べてみた。
今日も昨日と同様の環境だが、念のためのせておこう。
Java 1.6系
log4j log4j-1.2.17.jar
クラスパスにlog4j-1.2.17.jarを指定する。
ダウンロードは、こちら
昨日は、コンソールとファイルに出力されるように設定ファイルを
作成していた。
まずは、何をどうすれば、ファイルに出力されるのか書くことにする。
注目するのは、4行目から9行目の内容
<appender ~>~</appender>
この内容がファイルに出力する内容を設定している。
<appender name="File" class="org.apache.log4j.FileAppender">
nameには、appenderの名前を指定する。
classには、org.apache.log4j.FileAppenderを指定する。
このクラスがファイルに出力するためのクラスとなる。
<param name="File" value="C:/log4j.log" />
paramタグは、appenderに渡すパラメータを指定する。
nameにFileを指定し、vlaueに出力するファイルのパスを指定する。
この内容が出力先のファイル名になる。
ファイルが存在していない場合は、自動で作成する。
それ以外のパラメータは、Append、BufferedIO、BufferSize、
Threshold、ImmediateFlush、Encoding
Appendについては、追記モードを指定する。
指定する値は、boolean(true/false)を設定する。
初期値(指定しない場合)は、falseになっていて追記されない。
毎回ファイルを上書きするので注意が必要。
例
<param name="Append" value="true" />
BufferedIOについては、バッファリングを指定する。
指定する値は、boolean(true/false)を設定する。
初期値(指定しない場合)は、falseになっていてバッファリングされない。
BufferSizeについては、バッファサイズを指定する。
バッファリングをする場合のバッファサイズになる。
Thresholdについては、appenderごとに出力するログのレベルを指定する。
指定する値は、DEBUG/INFO/WARN/ERROR/FATALを指定できる。
ImmediateFlushについては、バッファの内容を即時出力するかを指定する。
指定する値は、boolean(true/false)を設定する。
初期値(指定しない場合)は、trueになっていてバ即時に出力する。
Encodingについては、出力するファイルの文字コードを指定する。
初期値(指定しない場合)は、OSの文字コードで出力される。
これで、appendarの設定は、完了。
このappendarを使用するかを指定するのが、
<root>~</root>
になる。
appender-refタグで、上記で設定したappendarのnameを指定する。
<appender-ref ref="File" />
ちなみに、<level value="debug" />で、ログの出力レベルを設定できる。
以上で、ファイルに出力する設定が完了。
結構長くなってしまったので、
<layout ~>~</layout>
については、また明日にでも書きます。
今日も昨日と同様の環境だが、念のためのせておこう。
Java 1.6系
log4j log4j-1.2.17.jar
クラスパスにlog4j-1.2.17.jarを指定する。
ダウンロードは、こちら
昨日は、コンソールとファイルに出力されるように設定ファイルを
作成していた。
まずは、何をどうすれば、ファイルに出力されるのか書くことにする。
注目するのは、4行目から9行目の内容
<appender ~>~</appender>
この内容がファイルに出力する内容を設定している。
<appender name="File" class="org.apache.log4j.FileAppender">
nameには、appenderの名前を指定する。
classには、org.apache.log4j.FileAppenderを指定する。
このクラスがファイルに出力するためのクラスとなる。
<param name="File" value="C:/log4j.log" />
paramタグは、appenderに渡すパラメータを指定する。
nameにFileを指定し、vlaueに出力するファイルのパスを指定する。
この内容が出力先のファイル名になる。
ファイルが存在していない場合は、自動で作成する。
それ以外のパラメータは、Append、BufferedIO、BufferSize、
Threshold、ImmediateFlush、Encoding
Appendについては、追記モードを指定する。
指定する値は、boolean(true/false)を設定する。
初期値(指定しない場合)は、falseになっていて追記されない。
毎回ファイルを上書きするので注意が必要。
例
<param name="Append" value="true" />
BufferedIOについては、バッファリングを指定する。
指定する値は、boolean(true/false)を設定する。
初期値(指定しない場合)は、falseになっていてバッファリングされない。
BufferSizeについては、バッファサイズを指定する。
バッファリングをする場合のバッファサイズになる。
Thresholdについては、appenderごとに出力するログのレベルを指定する。
指定する値は、DEBUG/INFO/WARN/ERROR/FATALを指定できる。
ImmediateFlushについては、バッファの内容を即時出力するかを指定する。
指定する値は、boolean(true/false)を設定する。
初期値(指定しない場合)は、trueになっていてバ即時に出力する。
Encodingについては、出力するファイルの文字コードを指定する。
初期値(指定しない場合)は、OSの文字コードで出力される。
これで、appendarの設定は、完了。
このappendarを使用するかを指定するのが、
<root>~</root>
になる。
appender-refタグで、上記で設定したappendarのnameを指定する。
<appender-ref ref="File" />
ちなみに、<level value="debug" />で、ログの出力レベルを設定できる。
以上で、ファイルに出力する設定が完了。
結構長くなってしまったので、
<layout ~>~</layout>
については、また明日にでも書きます。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="File" class="org.apache.log4j.FileAppender">
<param name="File" value="C:/log4j.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c - %-5m [%t] (%F:%L)%n"/>
</layout>
</appender>
<appender name="Console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c - %-5m [%t] (%F:%L)%n"/>
</layout>
</appender>
<root>
<level value="debug" />
<appender-ref ref="Console" />
<appender-ref ref="File" />
</root>
</log4j:configuration>
登録:
投稿 (Atom)