昔のコードをお試し移植するときなど、とりあえず消したい場合はdefineいれとく
#define _CRT_SECURE_NO_WARNINGS
ソースファイルに記述するのが面倒な場合は、[プロパティ] > [C/C++] > [プリプロセッサ] に定義しておけば、一律で抑制できる
昔のコードをお試し移植するときなど、とりあえず消したい場合はdefineいれとく
#define _CRT_SECURE_NO_WARNINGS
ソースファイルに記述するのが面倒な場合は、[プロパティ] > [C/C++] > [プリプロセッサ] に定義しておけば、一律で抑制できる
新しいプロジェクトの作成で
「Windows デスクトップ ウィザード」を選択
プロジェクト名とかはお好きにどうぞ
アプリケーションの種類を「コンソール アプリケーション」にして
MFCヘッダーにチェックをいれてOKします。
意外とややこしいのよね
Function ConvStrtoSJISCodeStr(aSJISstr As String) As String If Len(aSJISstr) < 2 Then Exit Function End If Dim aryByte() As Byte ReDim aryByte(Len(aSJISstr) / 2 - 1) Dim i i = 0 Do If Len(aSJISstr) <= 0 Then Exit Do End If Dim bHex As Byte bHex = Int("&H" & Left(aSJISstr, 1)) * 16 + Int("&H" & Mid(aSJISstr, 2, 1)) aSJISstr = Right(aSJISstr, Len(aSJISstr) - 2) aryByte(i) = bHex i = i + 1 Loop ConvStrtoSJISCodeStr = StrConv(aryByte, vbUnicode) End Function
エクセルファイル複数選択例
Option Explicit Sub OpenExcelFile() Dim openFilePath As Variant 'ダイアログボックスで選択したファイルを配列に入れる 'MultiSelect:=Trueにすると複数ファイル選択OK openFilePath = Application.GetOpenFilename _ ("Microsoft Excel ファイル,*.xls*", , "エクセルファイルを選んで下さい", MultiSelect:=True) Dim pt As Variant If IsArray(openFilePath) Then '配列ぶん繰り返しファイル処理 For Each pt In openFilePath Debug.Print(pt) Next pt End If End Sub
[デバッグ] > [ウィンドウ] > [例外設定] を開いて
例外が発生した時点で停止したい例外にチェックを入れます。
よくわからないなら、全部チェックして止めて
余計なのは少しずつOFFすればよし
以下をフォームのコードに追加
' CreateParams プロパティをオーバーライドする Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams Get Const CS_NOCLOSE As Integer = &H200 Dim DcreateParams As System.Windows.Forms.CreateParams = MyBase.CreateParams DcreateParams .ClassStyle = DcreateParams .ClassStyle Or CS_NOCLOSE Return DcreateParams End Get End Property
Form1_Load()で復元処理して、FormClosing()で保存処理する
以下はレジストリ使った例
Private Sub FormHoge_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim regkey As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Software\hoge\param") Dim size As Size size = New Size(regkey.GetValue("w", 1024), regkey.GetValue("h", 768)) Me.ClientSize = size Dim point As Point point = New Point(regkey.GetValue("x", 0), regkey.GetValue("y", 0)) Me.Location = point End Sub
Private Sub FormHoge_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing Dim regkey As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Software\hoge\param") regkey.SetValue("w", Me.ClientSize.Width) regkey.SetValue("h", Me.ClientSize.Height) regkey.SetValue("x", Me.Location.X) regkey.SetValue("y", Me.Location.Y) End Sub
ApplicationSettingsを使ったやつだと
DLLで実装した場合、再起動するとすべて忘れてしまった。
あとClientSizeは思ったとおりにならない罠があるらしい。
アドイン「Table of Contents Plus」を導入して、
「基本設定」→「以下のコンテンツタイプを自動挿入」のpostとpageのチェックを外し、
目次を表示したいページのどこかに
[toc]
とショートコードを追加する。