七隈達磨のブログ -30ページ目

七隈達磨のブログ

パソコンを使ってて気になった事の解決法や色んな備忘録。
間違ってたら教えてください。
あくまで個人レベルなので参考程度に。実施して何か起きても責任は取れません(笑)

WindowsのOutlook Expressでメッセージを最適化するメッセージが表示される。

 

Outlook Expressを終了すると、毎回以下のメッセージが出力。

 

「空きディスク領域を増やすために、Outlook Express はメッセージを最適化する事ができます。この操作には数分かかることがあります。」
 

七隈達磨のブログ-最適化メッセージ

 

ディスクに空きは十分にあるのですが、

オプションには抑止する項目はありません。

 

直接レジストリを変更するしか方法が無いらしい。

Outlook ExpressのCompact Check Countという値が100回を超えると表示されるとの事。

「スタート」→「ファイル名を指定して実行」→「regedit」でレジストリエディタを起動する。

 
七隈達磨のブログ-regedit起動
 

 

「HKEY_CURRENT_USER\Identities\{GUID}\Software\Microsoft\Outlook Express\5.0」まで移動する。


※GUID:Globally Unique Identifier:そのユーザーを識別するグローバル一意識別子 

 

 
七隈達磨のブログ-レジストリエディタ
 

 


「Compact Check Count」を開き「値のデータ」を「1」に変更して「OK」を押下する。

 
七隈達磨のブログ-レジストリ編集
 
 
レジストリエディタは用済みなので閉じる。

 


参考ページ

 ・はてな

  http://q.hatena.ne.jp/1150693741

 

Windowsでのファイルを分割するコマンドが無いため
Excelのマクロを使ってファイルを分割する。

※splitコマンドがあればいいのに・・・・。

 
色々なサイトを参考にさせて頂きました。
ありがとうございました。

 

・ファイル

http://www.geocities.jp/sdfuku/B/FileSplitVer1.0.zip

 ↑リンクがうまくいかないので直接貼り付けで。



 

●EXCELのセル設定

分割対象ファイル名=F2
選択ファイルサイズ(byte)=F3
保存フォルダ=F6
分割サイズ(byte)=F9
ファイルパス=F15
ファイル名=F16
ファイル拡張子=F17
ファイル名(拡張子なし)=F18


●作成したマクロ名

圧縮ファイル選択:CompressGetOpenFilename()
保存するフォルダ選択:SaveFolderSelect()
ファイル分割:FileSplitFunc()


●分割するファイルの選択

Sub CompressGetOpenFilename()

'/
'/ 分割するファイル選択する。
'/

Dim OpenComFileName As Variant '/ファイル名を格納

'/ファイルを開くダイアログを開く。
OpenComFileName = Application.GetOpenFilename( _
FileFilter:="zipファイル(*.zip),*.zip" _
, FilterIndex:=1 _
, Title:="分割対象の分割ファイルを選択する" _
, MultiSelect:=False _
)

'/
'/ 対象のファイルを表示する。
'/

Range("F2") = OpenComFileName


'/
'/ ファイルオブジェクトの定義
'/
Dim FilseSizeObject01 As Object '/分割ファイルのオブジェクト情報を格納
Dim FileObject As Object '/分割ファイルサイズオブジェクトを格納

'/変数変更箇所/'
Set FilseSizeObject01 = CreateObject("Scripting.FileSystemObject")
Set FileObject = FilseSizeObject01.GetFile(Cells(2, 6))


'/
'/ ファイル情報の取得
'/
Dim filesizea As Variant '/ファイルサイズを格納
Dim kakuchoushi As Variant '/ファイル拡張子を格納
Dim filemei As Variant '/拡張子を含むファイル名を格納
Dim filepatha As Variant '/ファイルがあるフォルダの絶対パスを格納
Dim filecur1 As Variant '/拡張子をはずしたファイル名を格納

filesizea = FileObject.Size '/ファイルサイズを返します

'/変数変更箇所/'
kakuchoushi = FilseSizeObject01.GetExtensionName(Cells(2, 6)) '/拡張子を返す
filepatha = FilseSizeObject01.GetParentFolderName(Cells(2, 6)) '/ファイルの絶対パスを返します
filemei = FilseSizeObject01.GetFileName(Cells(2, 6)) '/拡張子を含んだファイル名を返します
filecur1 = FilseSizeObject01.GetBaseName(Cells(2, 6)) '/拡張子をはずしたファイル名を返します


'/
'/ 対象のファイルを表示する。
'/

'/変数変更箇所/'
Range("F3") = filesizea '/ファイルサイズを表示
Range("F15") = filepatha '/ファイルがあるフォルダの絶対パスを表示
Range("F16") = filemei '/拡張子を含んだファイル名を表示
Range("F17") = kakuchoushi '/拡張子を表示
Range("F18") = filecur1 '/拡張子をはずしたファイル名を格納


'宣言した変数のクリア
Set OpenComFileName = Nothing
Set FilseSizeObject01 = Nothing
Set FileObject = Nothing
Set filesizea = Nothing

End Sub



●保存するフォルダの選択

'--------------------------------------
'
' 保存するフォルダの選択
'
'--------------------------------------

Sub SaveFolderSelect()

Dim savefolder01 As Variant '/保存するフォルダを格納

With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = True Then
savefolder01 = .SelectedItems(1)
End If
End With

'保存フォルダ表示
'/変数変更箇所/'
Range("F6") = savefolder01 & "\"

'/宣言した変数のクリア
Set savefolder01 = Nothing

End Sub



●ファイル分割
'--------------------------------------
'
' ファイル分割と結合bat作成
'
'--------------------------------------

Sub FileSplitFunc()

'/
'/ 入力セルチェック
'/

Dim checkP01, checkP02, checkP03 As String
Dim checkP11 As String
Dim chkckP21 As String

checkP01 = Cells(2, 6) '/分割対象ファイル名(F2)
checkP02 = Cells(16, 6) '/ファイル名(F16)
checkP03 = Cells(17, 6) '/ファイル拡張子(F17)

checkP11 = Cells(6, 6) '/保存フォルダ(F6)

checkP21 = Cells(10, 6) '/分割サイズ(byte)(F10)

If checkP01 = "" Or checkP02 = "" Or checkP03 = "" Then
MsgBox "「分割ファイル選択」を再度実施して下さい。"
Exit Sub
End If

If checkP11 = "" Then
MsgBox "「保存先フォルダ選択」を再度実施して下さい。"
Exit Sub
End If

If checkP21 = "" Then
MsgBox "「分割サイズ設定」を設定して下さい。"
Exit Sub
End If

'/
'/ 分割と結合
'/

Dim fileA As String '/分割元ファイルを格納
Dim fileB As String '/分割後ファイル設定
Dim fileC As String '/復元用バッチファイル

Dim ix As Integer '/分割数
Dim ln As Long '/分割長
Dim ReadArea() As Byte '/インプットエリア
Dim TotalLen As Long '/元ファイル長
Dim Last As Boolean '/終了フラグ
Dim Bat As String '/バッチファイルの内容

'/変数変更箇所/'
fileA = Cells(2, 6) '/分割元ファイル
fileB = Cells(6, 6) & Cells(16, 6) & "." '/分割後ファイル(末尾に通番を付与する)
fileC = Cells(6, 6) & "recovery.bat" '/復元用バッチファイル

ln = Cells(10, 6) '/分割長セット(byteで定義,1Mバイト=1,000,000)

TotalLen = FileLen(fileA) '/全体長セット
Open fileA For Binary Access Read As #1 '/元ファイルオープン
ix = 1 '/分割数初期値化

P_loop:

'分割長セット(TotalLenは残りバイト数を保持)
If TotalLen > ln Then
TotalLen = TotalLen - ln
Else
ln = TotalLen
Last = True
End If

ReDim ReadArea(1 To ln) '/読込みエリア確保
Get #1, , ReadArea '/読込み

'分割ファイル作成
Open fileB & Format(ix, "000") For Binary Access Write As #2
Put #2, , ReadArea
Close #2

'バッチファイルの内容を作成
'/変数変更箇所/'
If ix = 1 Then
Bat = "copy /b " & Cells(16, 6) & "." & Format(ix, "000")
Else
Bat = Bat & " + " & Cells(16, 6) & "." & Format(ix, "000")
End If

'終了処理
'/変数変更箇所/'
If Last Then
Close #1

Bat = Bat & " " & Cells(16, 6)
Open fileC For Output As #1
Print #1, Bat
Close #1

Exit Sub
End If

'ループ処理
ix = ix + 1
GoTo P_loop

End Sub

※参考にしたサイト
 ・Xillion Script Tips
  http://www.xillion.net/script/2005/04/post_9.html
 ・Office TANAKA
  http://officetanaka.net/excel/vba/filesystemobject/filesystemobject.htm
 ・Excel VBA 入門講座
  http://excelvba.pc-users.net/fol2/2_6.html

EXCELで英字(大文字、小文字)と数字を組み合わせて文字列を作成したい。

 

例)8文字のランダムな文字列(英字大文字、英字小文字、数字)を作成する。


A1に作成したい文字列に含む英字大文字、英字小文字、数字を入力する。

 

今回は以下

数字:0123456789

英字(大文字):ABCDEFGHIJKLMNOPQRSTUVWXYZ

英字(小文字):abcdefghijklmnopqrstuvwxyz

 

A1に「0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz」を入力。

 

A2からH2までに以下の数式を入力する。

=MID(A1,ROUNDDOWN(RAND()*LEN(A1)+1, 0),1)

 

I2に以下の数式を入力する。

=CONCATENATE(A2,B2,C2,D2,E2,F2,G2,H2,I2)

 

 

※数字が出にくいため以下で対応

A1に「0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz0123456789」を入力。
 
 

参考にしたページ

 ・教えてgoo

  http://oshiete.goo.ne.jp/qa/1908833.html

  http://oshiete.goo.ne.jp/qa/1850822.html