ExcelVBA 自分の備忘録

IT関連

列幅を適正化する

 

テキストを中央揃え

 

ワークシートを作る(既存のシートの最終に)

 

シート名を変更する

 

 

文字を切り出す

 

最終行を取得

上記はA列のケツから上に見に行ってデータがあった行を取得している。B列の方が行が多い表の場合はB65535にしてあげること。

 

文字列として認識する

CSVからExcelのシートに移すとき、コードのように先頭が0が入るもの(例えば0123)は0が消されて123と表示される。これは数値として認識されるから。これを防ぐためには、事前に文字列として認識させておく必要がある。よって代入前に上記コードを実行してから、代入するとうまくいく。

 

桁区切りで表示する

金額などを1,353,245のように、3桁で区切るようにするとき。代入前に設定しておく。

 

%で表示する

利益÷売りを利率として別のセルに代入するとき、%で表示したいが、そのままでは、0.12222…で表示される。これも事前に代入しておくこと。尚上記例は小数点1桁。

 

アラート表示を無しにする

マクロでシートを削除するとき、削除してよろしいですか?の表示はウザいので、表示しないようにする。DisplayAlerts = Falseだ。ただ、処理後は戻しておく必要があるので、末尾のTrueも忘れずに。

 

全シートに対して処理

一番左のシートが原紙でそれ以外を削除したいときなど用途はさまざま。

 

アクティブセルに対して処理

よくやるパターンが人間がドラッグでセルを選んで、ボタンを押すと、アクティブセルだけに対して処理を行うなど。まずTargetにアクティブセルのアドレスを取得して、ForEachでぶん回す。その際の変数cも必要。

 

ヘッダフッタを除去

 

先頭行を固定する

2行目で固定する場合は、Range(“A3”)にするとよい。

 

印刷のとき先頭行を固定して2枚目以降も表示する

 

ウインドウのスクロールを戻す

これで一番左上に表示が戻る。

 

用紙の向きを変更する

 

印刷余白を変更する

 

アクティブセルの値をファイル名にしてPDF保存

 

アクティブシートを複数選択しているか確認する

 

シートが保護されているか確認する

 

ダブルクォーテーションを文字列として判別させる

VBAでは文字列はダブルクォーテーションでくくる決まりがある。「ありがとう」という文字があるとするが、これは数値にはなり得ないし、別に”ありがとう”などとしなくてもいいのでは?と思うかもしれないが、「ありがとう」という変数かもしれない。ダブルクォーテーションを付けるのはそういう意味だ。しかし、”を文字列として認識させたい場合は、直前にダブルクォーテーションを重ねてエスケープする必要がある。

hoge = “ありがとう”

これは、”ありがとう”という文字をhogeに代入したことになるが、緑が上記で説明したお決まりのダブルクォーテーション。青がエスケープ文字、赤が実質の文字となる。

 

On Errorを解除する

利率計算で利益÷売上*100のロジックを使うが、0で割れずオーバーフローを起こすので、On Error Resume Nextでエラー回避するが、同一プロシージャ内はずっと適用されるのでは不都合がある。それをこれで解除できる。

On Errorを解除する

利率計算で利益÷売上*100のロジックを使うが、0で割れずオーバーフローを起こすので、On Error Resume Nextでエラー回避するが、同一プロシージャ内はずっと適用されるのでは不都合がある。それをこれで解除できる。

行を挿入する

これで1行目に空白行を挿入でき、もともとの行は2行目に移動する。

複数行を選択する

Rows(“1:2”)で、1行目から2行目を主語として指定できる。

改ページを挿入する

項目ごとに改ページしたいときは、PageBreakを行で指定するが、指定した行の上部で切れることになる。ようするに、指定した行から次のページになる。Rows(2)とすると、1行目と2行目以降は別のページになる。

カンマ区切りで表示する

単価や金額は普通にカンマ区切りにしてマイナスは赤字で表示する。利益率などは%なのでマイナスは赤字だが、小数点1桁あたりで表示したいそのときは、NumberFormatlocalでこのように指定する。

コメント

タイトルとURLをコピーしました