火曜日, 1月 27, 2009
[VB2005]Date型のOptional
▼質問
Date型をOptionalで指定したいんだ。
Nowを定数にしようとしたけどうまくいかないんだ。
どうしたらよいか教えてくれ!!
▼回答
次の様に指定すればできるから試してみてくれ!!
Optional ByVal pDate As Date = #1/1/2000#
Optional ByVal pDate As Date = #1/1/2000 1:00:00 AM#
■参考サイト
VB.NET/文法/型/Date型 - Security Akademeia
http://wiki.akademeia.info/index?VB.NET%2F%CA%B8%CB%A1%2F%B7%BF%2FDate%B7%BF
Date型をOptionalで指定したいんだ。
Nowを定数にしようとしたけどうまくいかないんだ。
どうしたらよいか教えてくれ!!
▼回答
次の様に指定すればできるから試してみてくれ!!
Optional ByVal pDate As Date = #1/1/2000#
Optional ByVal pDate As Date = #1/1/2000 1:00:00 AM#
■参考サイト
VB.NET/文法/型/Date型 - Security Akademeia
http://wiki.akademeia.info/index?VB.NET%2F%CA%B8%CB%A1%2F%B7%BF%2FDate%B7%BF
[VB2005]半角から全角に変換
▼質問
半角の数字を全角に変換したいんだ。
どうしたらできるか教えてくれ!
▼回答
StrConv関数を使えばできるよ!!
StrConv(CStr(数字), VbStrConv.Wide)
この関数は、数字以外でも変換してくれるか便利だ!
反対に全角を半角にしたい時は、次の様にすればOKだ。
StrConv(CStr(数字), VbStrConv.Narrow)
■参考サイト
@IT:.NET TIPS 文字列を全角/半角に変換するには?(VB.NET関数活用) - C#
http://www.atmarkit.co.jp/fdotnet/dotnettips/265vbhanzen/vbhanzen.html
半角の数字を全角に変換したいんだ。
どうしたらできるか教えてくれ!
▼回答
StrConv関数を使えばできるよ!!
StrConv(CStr(数字), VbStrConv.Wide)
この関数は、数字以外でも変換してくれるか便利だ!
反対に全角を半角にしたい時は、次の様にすればOKだ。
StrConv(CStr(数字), VbStrConv.Narrow)
■参考サイト
@IT:.NET TIPS 文字列を全角/半角に変換するには?(VB.NET関数活用) - C#
http://www.atmarkit.co.jp/fdotnet/dotnettips/265vbhanzen/vbhanzen.html
日曜日, 1月 18, 2009
[VB2005]ExcelのValue値取得
▼質問
ExcelのValue値を取得したいんだ。
どうしたらできるか教えてくれ!
▼回答
サンプルを示すから参考にしてくれ!!
これを実行すると面白い事が起きる。
配列の始まりが1から始まるのだ!
VB6では、Dim obj(1 To 3) As Object ができたけどね!
VB.NETからは、0始まりしか作れない。痛い(>_<)
なぜ、Excelだけ1からの配列が作れるんだ!?
不思議だ!!
ExcelのValue値を取得したいんだ。
どうしたらできるか教えてくれ!
▼回答
サンプルを示すから参考にしてくれ!!
Public Shared Sub GetExcelValue(ByVal strFilePath As String, _
ByRef val(,) As Object, _
Optional ByVal maxRow As Integer = 65536)
Dim xlApp As Excel.Application = Nothing
Try
xlApp = CreateObject("Excel.Application")
If IsNothing(xlApp) Then Exit Sub
xlApp.Workbooks.Open(Filename:=strFilePath)
xlApp.WindowState = Excel.XlWindowState.xlMinimized
xlApp.Visible = False
xlApp.DisplayAlerts = False
xlApp.ScreenUpdating = False
Dim wWorksheet As Excel.Worksheet = _
CType(xlApp.ActiveWorkbook.ActiveSheet, Excel.Worksheet)
With wWorksheet
.Unprotect()
Application.DoEvents()
'Value値取得(全セルを取得するとメモリのエラーになるので注意が必要!)
val = .Range("A1:IV" & maxRow).Value
End With
GC.Collect()
Catch ex As Exception
Finally
If (Not IsNothing(xlApp)) Then xlApp.Quit()
xlApp = Nothing
GC.Collect()
End Try
End Sub
これを実行すると面白い事が起きる。
配列の始まりが1から始まるのだ!
VB6では、Dim obj(1 To 3) As Object ができたけどね!
VB.NETからは、0始まりしか作れない。痛い(>_<)
なぜ、Excelだけ1からの配列が作れるんだ!?
不思議だ!!
金曜日, 1月 16, 2009
[VB2005]System.InvalidOperationException はハンドルされませんでした。
▼質問
いきなり、次のエラーが出るようになった。
System.InvalidOperationException はハンドルされませんでした。
Message="フォームの作成中にエラーが発生しました。詳細については、Exception.InnerException を参照してください。エラー: オブジェクト参照がオブジェクト インスタンスに設定されていません。"
Source="アセンブリ名"
StackTrace:
場所 アセンブリ名.My.MyProject.MyForms.Create__Instance__[T](T Instance) 場所 17d14f5c-a337-4978-8281-53493378c1071.vb:行 190
場所 アセンブリ名.My.MyProject.MyForms.get_frmTrendAnalyzeMenu()
場所 アセンブリ名.My.MyApplication.OnCreateMainForm() 場所 C:\パス\TrdAnalyze\My Project\Application.Designer.vb:行 35
場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
場所 アセンブリ名.My.MyApplication.Main(String[] Args) 場所 17d14f5c-a337-4978-8281-53493378c1071.vb:行 81
場所 System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
場所 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
場所 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
場所 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
場所 System.Threading.ThreadHelper.ThreadStart()
▼回答
いきなり、次のエラーが出るようになった。
System.InvalidOperationException はハンドルされませんでした。
Message="フォームの作成中にエラーが発生しました。詳細については、Exception.InnerException を参照してください。エラー: オブジェクト参照がオブジェクト インスタンスに設定されていません。"
Source="アセンブリ名"
StackTrace:
場所 アセンブリ名.My.MyProject.MyForms.Create__Instance__[T](T Instance) 場所 17d14f5c-a337-4978-8281-53493378c1071.vb:行 190
場所 アセンブリ名.My.MyProject.MyForms.get_frmTrendAnalyzeMenu()
場所 アセンブリ名.My.MyApplication.OnCreateMainForm() 場所 C:\パス\TrdAnalyze\My Project\Application.Designer.vb:行 35
場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
場所 アセンブリ名.My.MyApplication.Main(String[] Args) 場所 17d14f5c-a337-4978-8281-53493378c1071.vb:行 81
場所 System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
場所 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
場所 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
場所 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
場所 System.Threading.ThreadHelper.ThreadStart()
▼回答