BunBackup
ミラーリング、日時でフォルダ分け、暗号化、圧縮など、いろいろな設定が出来るバックアップソフト
ポータブルHDDを買ったときに、バックアップソフトがついてきたので使ってみたのですが、バックアップしたファイルは独自の形式で1つのファイルにまとめられてしまいました。
バックアップしたファイルの一部だけをリストア(バックアップファイルを元に戻すこと)したくても、バックアップしたファイル全てを元に戻すので無駄な時間がかかってしまいます。
このBunBackupならファイル構造そのままの形でバックアップできるので、必要なファイルだけ元に戻すことが出来ます。
2008/02/23
2008/02/18
VBA-4 配列の初期化
これまでずっとC言語でプログラミングしてきたので、
文字列 = char型の配列
という認識だったのですが、VBには文字列を扱うString型があります。
つまり、文字列の扱いが違うわけです。
セルから取得した文字列に含まれている、ある文字を別の文字に置換する必要がありました。
置換そのものはReplace関数を使えばいいです。
が、問題は置換する対象の文字が多いこと。
VBAでは配列の初期化に
みたいな書き方ができないのです。
でも、Variant型とArray関数を使えば次のように配列の初期化ができます。
正確には、配列を値として持つVariant型の変数、らしいです。
Variant型というのは簡単に言うと、何でも入る変数。
でも、文字列はStringに入れたいです。整数ならIntegerに入れたいです。
始から入れるデータの型はわかっているんだから、その型で宣言したいです。
ちなみに、この方法で初期化した場合、配列の要素の数を表すLengthプロパティは使えないみたいです。
要素数が知りたいときは、添え字の上限を返すUBound関数で取得できます。
そういやあ、宣言のときに指定した数字は要素の添え字の最大値なんですね。
C言語みたいに要素数となるわけじゃあないみたいです。
C
VB
文字列 = char型の配列
という認識だったのですが、VBには文字列を扱うString型があります。
つまり、文字列の扱いが違うわけです。
セルから取得した文字列に含まれている、ある文字を別の文字に置換する必要がありました。
置換そのものはReplace関数を使えばいいです。
配列の値の置換
1.
2.
3.
4.
5.
6.
7.
' nは置換対象の文字の数
' chは置換対象の文字の配列
' swは置換する文字の配列
For i = 0 To n
rename = Replace(name, ch(i), sw(i))
name = rename
Next l
が、問題は置換する対象の文字が多いこと。
VBAでは配列の初期化に
Dim ar As String = {"a", "b", "c"}みたいな書き方ができないのです。
でも、Variant型とArray関数を使えば次のように配列の初期化ができます。
正確には、配列を値として持つVariant型の変数、らしいです。
Variant型というのは簡単に言うと、何でも入る変数。
配列の初期化
1.
2.
3.
4.
5.
Sub tes()
Dim ar As Variant
ar = Array("a", "b", "c", "d", "e", "f", "g")
MsgBox UBound(ar)
End Sub
でも、文字列はStringに入れたいです。整数ならIntegerに入れたいです。
始から入れるデータの型はわかっているんだから、その型で宣言したいです。
ちなみに、この方法で初期化した場合、配列の要素の数を表すLengthプロパティは使えないみたいです。
要素数が知りたいときは、添え字の上限を返すUBound関数で取得できます。
そういやあ、宣言のときに指定した数字は要素の添え字の最大値なんですね。
C言語みたいに要素数となるわけじゃあないみたいです。
C
int a(3);
// a(0)~a(2)の3つVB
Dim a(3) As Integer
' a(0)~a(3)の4つ
2008/02/16
にこちゅうに認定されました
子猫は独り遥か雪に埋もれてわたしを見つめる
投稿日は12/31。全く知りませんでした。
ソニック☆サイクラー
ちゃりんこダッシュ!
眠り姫
ピアノの雰囲気が好きです。
My Brand New Love
aan aan
研究室内で、私はそういう人、となっていました。
投稿日は12/31。全く知りませんでした。
ソニック☆サイクラー
ちゃりんこダッシュ!
眠り姫
ピアノの雰囲気が好きです。
My Brand New Love
aan aan
研究室内で、私はそういう人、となっていました。
2008/02/15
VBA-3 セルに名前を付ける
Excelの画面左上に「A1」とか今選択しているセルの名前が表示される窓があります。
ここをクリックして文字を入力すると、そのセルに自分で名前を付けることができます。
今度はこれを自動化します。
文字列の扱いが力任せな気がしますが、ほかの方法を思いつかなかったんです。
でも、&で文字列がつなげるのは便利ですね。
ループなんかを使ってたくさんのセルを処理させるとき、
セルを選択→処理
を繰り返すため画面が下や横に高速で流れていきます。
別に、流れていく画面を見る必要がないなら、マクロ実行中画面を更新しないようにするといいです。
ここをクリックして文字を入力すると、そのセルに自分で名前を付けることができます。
今度はこれを自動化します。
セルA5に「せる」と名前を付ける
1.
2.
3.
4.
'マクロの記録そのまま
Sub setName()
ActiveWorkbook.Names.Add name:="せる", RefersToR1C1:="=sheet1!R5C1"
End Sub
変数を使って書き換え
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Sub setName()
Dim i, j As Integer
Dim str As String 'ワークシートの名前
Dim name As String 'セルにつける名前
str = ActiveSheet.name
i = 5
j = 1
name = "せる"
ActiveWorkbook.Names.Add name:=name, _
RefersToR1C1:="=" & str & "!R" & i & "C" & j
End Sub
文字列の扱いが力任せな気がしますが、ほかの方法を思いつかなかったんです。
でも、&で文字列がつなげるのは便利ですね。
自分で付けた名前(ここでは「せる」)を消す
1.
2.
3.
Sub delN()
ActiveWorkbook.Names("せる").Delete
End Sub
全ての名前を消す
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub delN()
Dim name As String
Dim i As Integer
i = 1
For Each nm In ActiveWorkbook.Names
name = nm.NameLocal
ActiveWorkbook.Names(name).Delete
i = i + 1
Next
End Sub
ループなんかを使ってたくさんのセルを処理させるとき、
セルを選択→処理
を繰り返すため画面が下や横に高速で流れていきます。
別に、流れていく画面を見る必要がないなら、マクロ実行中画面を更新しないようにするといいです。
画面更新の一時停止
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub macro()
'画面を更新しない
Application.ScreenUpdating = False
'なんかの処理
'画面を更新する
Application.ScreenUpdating = True
End Sub
2008/02/14
きょうはもうつかれた ~そつろんはっぴゅおかい~
卒論の発表会がありました。
で、そのとき卒論も同時に提出するので、ここ数日間は発表用の資料を作りながら卒論も書いてました。
発表の資料を作るだけでなく発表の練習もしなければならないわけで、
基本的には、発表でどのような内容で、どのような順序で説明するのかを考えながら資料を作ってゆくのですが、今回は先輩が企業への報告会用に作ったものを卒論発表用に作り直すという形だったので作ること自体は楽でした。
ただ、話す内容をほとんど考えていないので、何を言えばいいのかが全くわからない。
とりあえず、企業への報告会での先輩の発表を思い出しながらしゃべってみたのですが、難しい。
発表時間は10分くらいです。
説明すべきことが多すぎて何を、どの順番で言えばいいのかが全くわかりません。
発表を先生や先輩に聞いてもらい、意見を聞きながら修正しました。
で、本番は問題なく発表できました。
ようやく発表が終わって、楽になったーと喜びたいのですが、これで全て終わりというわけではなく、これから卒論の修正をしなければならなりません。
それでも、一段落ついて、楽になったーと喜びたい。
それなのに会社の読書感想文を出さなければならず、もう、いや。
提出期限が、郵送して会社に届いた時点での日付となっていて、明日出さないと間に合いそうにないのです。
もう、いや、ねむい、つかれたよぅ
で、そのとき卒論も同時に提出するので、ここ数日間は発表用の資料を作りながら卒論も書いてました。
発表の資料を作るだけでなく発表の練習もしなければならないわけで、
基本的には、発表でどのような内容で、どのような順序で説明するのかを考えながら資料を作ってゆくのですが、今回は先輩が企業への報告会用に作ったものを卒論発表用に作り直すという形だったので作ること自体は楽でした。
ただ、話す内容をほとんど考えていないので、何を言えばいいのかが全くわからない。
とりあえず、企業への報告会での先輩の発表を思い出しながらしゃべってみたのですが、難しい。
発表時間は10分くらいです。
説明すべきことが多すぎて何を、どの順番で言えばいいのかが全くわかりません。
発表を先生や先輩に聞いてもらい、意見を聞きながら修正しました。
で、本番は問題なく発表できました。
ようやく発表が終わって、楽になったーと喜びたいのですが、これで全て終わりというわけではなく、これから卒論の修正をしなければならなりません。
それでも、一段落ついて、楽になったーと喜びたい。
それなのに会社の読書感想文を出さなければならず、もう、いや。
提出期限が、郵送して会社に届いた時点での日付となっていて、明日出さないと間に合いそうにないのです。
もう、いや、ねむい、つかれたよぅ
2008/02/12
VBA-2 セルからリンクを張る
マクロの記録でリンクを張るコードを取得
1.
2.
3.
4.
5.
6.
7.
8.
'セルA1にリンクを設定する
Sub setLink()
Cells(1, 1).Select
ActiveSheet.Hyperlinks.Add _
Anchor:=Selection, _
Address:="<a href="http://tekitou.link" target="_blank" rel="noopener">http://tekitou.link", _
TextToDisplay:="表示する文字列"
End Sub
定数部分を変数に変更
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
'アドレスはセルに記述してあるものとする
Sub setLink()
Dim i, j As Integer
Dim link As String
i = 1
j = 1
Cells(i, j).Select
link = Cells(i, j).Value
ActiveSheet.Hyperlinks.Add _
Anchor:=Selection, _
Address:=link, _
TextToDisplay:=link
End Sub
後は、i,jをループなんかで変化させればいいです。
リンクを解除する
1.
2.
3.
4.
Sub delLink()
Sheets(1).Activate 'シート1を選択
Cells.Hyperlinks.Delete 'シート内の全てのリンクを解除
End Sub
リンクを解除するとセルの枠やら書式やらもいっしょに解除されます。
書式は、文字色と下線を解除するため仕方がないと思いますが、なんで、枠も?
オブジェクト指向とか、全く理解できていないので、プロパティとか、メソッドとか、クラスとか、どういったものかのかが全くわかりません。
2008/02/11
フォルダ構造のみをコピーする
フォルダ構造だけをコピーしたいときがあります。
普通にコピーすると中身も一緒にコピーされるので時間がかかるし、コピーした後で中身を消す必要があるので面倒です。
そんなときはコマンドプロンプト。
オプションの
/e は空のサブディレクトリもコピーする
/t はディレクトリのみコピーする
てかこれ、ジャンルはプログラム?
まあ、いいや。
普通にコピーすると中身も一緒にコピーされるので時間がかかるし、コピーした後で中身を消す必要があるので面倒です。
そんなときはコマンドプロンプト。
xcopy コピー元 コピー先 /e /tオプションの
/e は空のサブディレクトリもコピーする
/t はディレクトリのみコピーする
てかこれ、ジャンルはプログラム?
まあ、いいや。
2008/02/09
2008/02/07
2008/02/04
にこ動 VOCALOID-SONG
わPさんのMEIKOが歌うSwallowtail Butterfly ~あいのうた~ (原曲はこっち)
最近のお気に入りです。
最近、リンちゃんの歌声が普通に聞こえるようになったのですが、
それはきっと、作者さんの技術が上がっているからです。
きっと。
Catch the Windとか
Promiseとか
TからSへとか
mirrorとか
ONPAとか
リンリンリンってしてくりん♪
なんかもいい感じです。
りんりん りんりん りんりん りんりん りんりん りんりん みかん♪
最近のお気に入りです。
最近、リンちゃんの歌声が普通に聞こえるようになったのですが、
それはきっと、作者さんの技術が上がっているからです。
きっと。
Catch the Windとか
Promiseとか
TからSへとか
mirrorとか
ONPAとか
リンリンリンってしてくりん♪
なんかもいい感じです。
りんりん りんりん りんりん りんりん りんりん りんりん みかん♪
登録:
投稿 (Atom)