言語・開発環境

ExcelのVBA

PowerShell他

関連ニュース

ファイルの存在確認

フルパスの文字列からファイル名とパスを別々に切り出す

VBでハッシュテーブル

文字列操作

配列のソート

指定フォルダ内のファイル名列挙

   'ファイル名列挙
   Dim Path As String
   Path = folder & "\" & "*.*"
   Dim fname As String
   fname = Dir(path)
   Dim fnames() As String
   Dim i As Integer
   i = 0
   Do While fname <> ""
       ReDim Preserve fnames(i)
       
       fnames(i) = fname
       
       i = i + 1
       fname = Dir()
   Loop

他プロセスの同期的実行

Option Explicit

'プロセス処理用の宣言とか
Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long,  ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long,  ByVal dwMilliseconds As Long) As Long
Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long

Public Const SYNCHRONIZE As Long = &H100000
Public Const PROCESS_QUERY_INFORMATION As Long = &H400
Public Const STANDARD_RIGHTS_REQUIRED As Long = &HF0000
Public Const PROCESS_ALL_ACCESS As Long = STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF

Type PROCESS_INFORMATION
       hProcess As Long
       hThread As Long
       dwProcessId As Long
       dwThreadId As Long
End Type

Type STARTUPINFO
       cb As Long
       lpReserved As String
       lpDesktop As String
       lpTitle As String
       dwX As Long
       dwY As Long
       dwXSize As Long
       dwYSize As Long
       dwXCountChars As Long
       dwYCountChars As Long
       dwFillAttribute As Long
       dwFlags As Long
       wShowWindow As Integer
       cbReserved2 As Integer
       lpReserved2 As Byte
       hStdInput As Long
       hStdOutput As Long
       hStdError As Long
End Type

Public Const NORMAL_PRIORITY_CLASS = &H20

Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" ( _
   ByVal lpApplicationName As String, ByVal lpCommandLine As String, _
   lpProcessAttributes As Any, lpThreadAttributes As Any, _
   ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, _
   lpEnvironment As Any, ByVal lpCurrentDriectory As String, _
   lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION)  As Long


Public Function Execute(cmd As String) As Integer
   
   Dim pInfo As PROCESS_INFORMATION
   Dim sInfo As STARTUPINFO
   Dim lngRet As Long
   Dim ecode As Long

   sInfo.cb = LenB(sInfo)

   lngRet = CreateProcess(vbNullString, _
       cmd, _
       ByVal 0&, _
       ByVal 0&, _
       1&, _
       NORMAL_PRIORITY_CLASS, _
       ByVal 0&, _
       vbNullString, _
       sInfo, _
       pInfo)

   WaitForSingleObject pInfo.hProcess, 100000

   GetExitCodeProcess pInfo.hProcess, ecode  ' 終了コード取得
   CloseHandle pInfo.hThread ' スレッドハンドルを閉じる
   CloseHandle pInfo.hProcess ' プロセスハンドルを閉じる

End Function

コントロールのフォントの異常?

Round関数は四捨五入ではない

VistaでのVB6対応

VBからVB.NETへの移行

特殊なディレクトリの取得

Format関数で西暦→和暦に変換するには

Format関数の日付/時刻表示書式指定文字

記号意味
(:)時刻の区切り記号です。オペレーティング システムの国別情報の設定によっては、時刻の区切り記号として他の記号が使用されることがあります。時刻を時間、分、および秒で区切ることができます。変換後の時刻の区切り記号は、コントロール パネルの設定によって決まります。
(/)日付の区切り記号です。オペレーティング システムの国別情報の設定によっては、他の記号が使用されることがあります。日付を年、月、および日で区切ることができます。変換後の区切り記号は、コントロール パネルの設定によって決まります。
cddddd および t t t t t の書式で表した日付と時刻を、日付、時刻の順序で返します。指定された値に小数部がない場合は日付のみ、整数部がない場合は時刻のみを表す文字列を返します。
d日付を返します。1 桁の場合、先頭に 0 が付きません (1 〜 31)。
dd日付を返します。1 桁の場合、先頭に 0 が付きます (01 〜 31)。
ddd曜日を英語 (省略形) で返します (Sun 〜 Sat)。
aaa曜日を日本語 (省略形) で返します (日〜土)。
dddd曜日を英語で返します (Sunday 〜 Saturday)。
aaaa曜日を日本語で返します (日曜日〜土曜日)。
ddddd年、月、日を含む短い形式 (コントロール パネルで設定) で表した日付を返します。既定の短い日付形式は、m/d/yy です。
dddddd年、月、日を含む長い形式 (コントロール パネルで設定) で表した日付を返します。既定の長い日付形式は mmmm dd, yyyy です。
w曜日を表す数値を返します (日曜日が 1、土曜日が 7 となります)。
wwその日が一年のうちで何週目に当たるかを表す数値を返します (1 〜 54)。
m月を表す数値を返します。1 桁の場合、先頭に 0 が付きません (1 〜 12)。ただし、h や hh の直後に m を指定した場合、月ではなく分と解釈されます。
mm月を表す数値を返します。1 桁の場合、先頭に 0 が付きます (01 〜 12)。ただし、h や hh の直後に mm を指定した場合、月ではなく分と解釈されます。
mmm月の名前を英語 (省略形) の文字列に変換して返します (Jan 〜 Dec)。
mmmm月の名前を英語で返します (January 〜 December)。
oooo月の名前を日本語で返します (1 月 〜 12 月)。
q1 年のうちで何番目の四半期に当たるかを表す数値を返します (1 〜 4)。
g年号の頭文字を返します (M、T、S、H)。
gg年号の先頭の 1 文字を漢字で返します (明、大、昭、平)。
ggg年号を返します (明治、大正、昭和、平成)。
e年号に基づく和暦の年を返します。1 桁の場合、先頭に 0 が付きません。
ee年号に基づく和暦の年を 2 桁の数値を使って返します。1 桁の場合、先頭に 0 が付きます。
y1 年のうちで何日目に当たるかを数値で返します (1 〜 366)。
yy西暦の年を下 2 桁の数値で返します (00 〜 99)。
yyyy西暦の年を 4 桁の数値で返します (100 〜 9999)。
h時間を返します。1 桁の場合、先頭に 0 が付きません (0 〜 23)。
hh時間を返します。1 桁の場合、先頭に 0 が付きます (00 〜 23)。
n分を返します。1 桁の場合、先頭に 0 が付きません (0 〜 59)。
nn分を返します。1 桁の場合、先頭に 0 が付きます (00 〜 59)。
s秒を返します。1 桁の場合、先頭に 0 が付きません (0 〜 59)。
ss秒を返します。1 桁の場合、先頭に 0 が付きます (00 〜 59)。
tt t t t コントロール パネルで設定されている形式で時刻を返します。先頭に 0 を付けるオプションが選択されていて、時刻が午前または午後 10 時以前の場合、先頭に 0 が付きます。既定の形式は、h:mm:ss です。
AM/PM時刻が正午以前の場合は大文字で AM を返し、正午〜午後 11 時 59 分の間は大文字で PM を返します。
am/pm時刻が正午以前の場合は小文字で am を返し、正午〜午後 11 時 59 分の間は小文字で pm を返します。
A/P時刻が正午以前の場合は大文字で A を返し、正午〜午後 11 時 59 分の間は大文字で P を返します。
a/p時刻が正午以前の場合は小文字で a を返し、正午〜午後 11 時 59 分の間は小文字で p を返します。
AMPM"12 時間制" が選択されていて、時刻が正午以前の場合は午前を表すリテラル文字列を、正午〜午後 11 時 59 分の間は午後を表すリテラル文字列を返します。これらの文字列の設定および "12 時間制" の選択は、コントロール パネルで行います。AMPM は大文字、小文字のどちらでも指定できます。既定の形式は、AM/PM です。

VBでの構造体の書き方

VBでフォームの表示とクローズ

VBの割り算での注意点

VBで基数変換

VBで正規表現


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS