Showing posts with label excel. Show all posts
Showing posts with label excel. Show all posts

Wednesday, December 30, 2015

Excel VBA: 1行に複数の式を書く

VBAは、: (コロン)で区切り、1行に複数の式が書ける。

cf.
http://oshiete.goo.ne.jp/qa/4821878.html

Excel VBA: On Error ...

On Error 

On Error GoTo line では、エラーが発生するとlineで指定した行ラベルまたは行番号に処理が移ります。
On Error Resume Next では、エラーが発生するとエラーの発生した次の行から処理を続行します。
On Error Goto 0 は、エラー処理ルーチンを無効にします。


cf.
http://officetanaka.net/excel/vba/statement/OnError.htm

Excel 文字列 結合 ダブルクォーテーション

Excel の関数やVBAで、文字列を結合する際には、& で結合する。

例えば、
A1 = "晴天"
B1 = "本日は" & A1 & "なり。"

結果: 本日は晴天なり。

ここで、ダブルクォーテーション " を表示するには、
① Char(34) を使う
② " を 3つ繋げる

という方法がある。ただし、②は値の引用ができない。

例えば、

A1 = "晴天"
B2 = "本日は" & Char(34) & A1 & Char(34) & "なり。"

結果: 本日は"晴天"なり。


A1 = "晴天"
B3 = "本日は" & """ & A1 & """ & "なり。"

結果: 本日は" & A1 & "なり。

cf:
http://www.relief.jp/itnote/archives/003415.php

Monday, December 23, 2013

VBA 変数の有効範囲と有効期間

①プロシージャレベル

Sub .... End Subまでの範囲。

プロシージャレベル変数の宣言には、Subプロシージャ内でDimまたはStaticを使用する。
DimとStaticの違いは有効期間である。

Subプロシージャ内でDim宣言した場合は、Subプロシージャの実行が終了すると値が失われる。

Static宣言した場合は、Subプロシージャの終了後も保持される。
ただし、参照範囲がSubプロシージャ内に限られているので、他のSubプロシージャから参照することはできない。
Staticは、同じプロシージャを繰り返し呼び出す必要がある場合に、Subプロシージャ内の値を保持したまま呼び出したい時に使う。



②モジュールレベル

モジュール内での宣言、使用。(ユーザフォーム、標準モジュール、クラスモジュール)

モジュールレベル変数の宣言には、Privateステートメントを使用するか、またはモジュール内(Subプロシージャの外)でDimを使用する。
いずれも参照範囲および有効期間は同じ。

各モジュール内では、どのプロシージャからでも参照可能。
モジュール変数は、Subプロシージャが終了しても変数が再定義するまで値が保持される。例えば、ユーザフォームを表示している間は値が保持される。



③プロジェクトレベル

プロジェクトの全体。

変数の宣言には、Publicステートメントを使用する。標準モジュール内で宣言する。
有効期間は、モジュールレベル変数と同じ。

ユーザフォーム内で宣言したプロジェクトレベル変数は、標準モジュール内では参照できない。



Source: Excel VBA コーディング・テクニック 間 顕次 p.167

Sunday, December 22, 2013

Excel VBAコードを見られないようにする

コードを見られたくない場合には、
VB Editorの
 ツール → VBA Projectのプロパティ
  → 保護タブ → プロジェクトを非表示用にロックするにチェック
ここでパスワードを指定する。

Tuesday, March 20, 2012

sumif の否定条件 「~でないセルの合計」(Excel)

例えば、以下のようにする。

=SUMIF(K3:K14,"<>"&"完了",B3:B14)

→K3:K14のセルで"完了"でないB3:B14のセルを合計する。

Thursday, January 5, 2012

他シートにあるリストから選択候補 (Excel)

他シートにあるリストで入力規則を設定する場合、名前を付けるとよい。

ただし、その文字が含まれる特定のセルの色を変えるときに指定する条件付書式設定では、他シートはしていできない。

Wednesday, January 4, 2012

Wednesday, December 7, 2011

Excel 全角半角を一括変換

http://pc.nikkeibp.co.jp/article/NPC/20060214/229244/

全角文字→半角文字には ASC()
 カタカナも半角カタカナに変換される
 半角にできない平仮名や漢字は無視される


半角文字→全角文字には JIS()

Excel列表示を ABC→123形式で表示

Excelの列番号(見出し)が数字で表示されるのはナゼ?
http://trendy.nikkeibp.co.jp/article/qa/other/20020819/101538/?rt=nocnt


R1C1参照形式をA1参照形式にする手順は、以下の通りです。

「ツール」メニューにある「オプション」を選択します。出てきたダイアログボックスで「全般」タブを開き、「設定」の項目にある「R1C1参照形式を使用する」に付いているチェックを外す。

Excelで隠れたオブジェクトを全て表示

http://efcit.co.jp/cgi-bin1/exqalounge.cgi?print+200804/08040047.txt


For Each s In Activesheet.Shapes:s.Visible = True:Next

とVBエディタのイミディエイトウィンドウ(Shift+Gで表示)に記入し、その行でリターンを押すと即実行。

-----

列をまとめて非表示にしたいのですが、
「オブジェクトがシートからはみだします。その操作はできません。」
というエラーメッセージが出てしまい非表示にできません。

といった場合に使える。

Excelそのシート内のセルを参照しているかどうかを調べる

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

検索で、セルの数式に、! を含むかどうかを検索すると、他シートから参照されているかどうかが検索できる。

Sunday, December 4, 2011

色のついたセルを合計 -Excel Macro

●はじめてのユーザー定義関数 ~ 色のついたセルを合計
http://hp.vector.co.jp/authors/VA016119/hajimete/udf1.html

Function CellColor(セル)
CellColor = セル.Interior.ColorIndex
End Function

という関数を作り、セルの横に色番号を記入し、それをキーに足し合わせる、という方法


●(EXCEL)CELLの色をカウントする。 - Windows NT/2000 - 教えて!goo
http://oshiete.goo.ne.jp/qa/1225959.html

上記同様に、
=GET.CELL(24,A1)
という関数で、セルの横に色番号を記入し、それをキーに足し合わせる、という方法

折れ線グラフにおいて、データが無い所を0としない (Excel)

折れ線グラフでデータがない所を0としない
http://takashixxx.blog88.fc2.com/blog-entry-75.html


いじったあとのセルでもデータ無しと認識させれば良いのです。
それは NA()関数を使います。
NA()関数は「エラー値#N/A(値が無効)」を返す関数です。これをIF文に絡ませて
=IF(G2="",NA(),G4/G2)
としてしまえば、G2が空白だった場合は#N/Aと表示されます。そうなればグラフの線も消えます。


ルールの種類を「指定の値を含むセルだけを書式設定」を選び、ルールの内容編集で「エラー」のセルのみを「書式設定」で文字色を背景色と同じにします。(この例では白文字にすればOK)
そうすればエラー#N/Aは表示されているものの、背景色と同じ文字色なので見えない。という事が実現できます。



最近のOffice365では、機能として付いている模様。