MW211 EXIT

devlog
ExcelVBA/複合論理演算子のわな
2014年08月20日
普通、以下のルールがある。
  ・「① AND ②」 …  ①が偽なら(偽なので)、②以降は判定しない
  ・「① OR ②」  …  ①が真なら(真なので)、②以降は判定しない
これを利用して、①で、②で判定する予定の変数の存在チェックなんかをして
うまいことやることができる。

しかし、ExcelVBAの「And」や「Or」では、
無条件に全ての条件式を(つまり②以降も)判定してしまうので、これが効かない。

VBA.netでは「AndAlso」や「OrElse」といったこれを実現する
論理演算子が追加されたが、ExcelVBAでは未実装なので
この事実を考慮してコーディングする必要があるようだ。
分類:ExcelVBA
Excel/条件付き書式
2014年08月19日
Excel2010の場合、メニューリボンより
  条件付き書式
  ↓
  セルの強調表示ルール
  ↓
  その他のルール
  ↓
  数式を使用して、書式設定するセルを決定。

例えば、セル「A1」にてセル「A2」と値が一致するか確認したい場合
「次の数式を満たす場合に値を書式設定」に以下の数式を入力。
  「=A1=A2」(=が不自然な形となるが気にしない)
「書式」ボタンで「セルの書式設定」を任意の値に設定(背景色を塗るなど)。

当該セルを書式コピー(書式のコピーのペイントブラシアイコン)で拡散することも可能。
分類:Excel
ExcelVBA/追加したボタンのイベント登録
2014年08月18日
「.OnAction」メソッドに関数名を文字列として登録する。
┌──────────────────────────────────────┐
│With ThisWorkbook.Worksheets("Sheet1")                                      │
│    With .Buttons.Add(Left, Top, Width, Height)                             │
│        .OnAction = "'clickAction(" & y * 100 + x & ")'"                    │
│    End With                                                                │
│End With                                                                    │
├──────────────────────────────────────┤
│Sub clickAction(z As Long)                                                  │
│    MsgBox z                                                                │
│End Sub                                                                     │
└──────────────────────────────────────┘
分類:ExcelVBA
ExcelVBA/セルに沿ってのボタン追加
2014年08月17日
以下のような感じ。(「x」と「y」は適宜座標の値を入れればよい)
┌──────────────────────────────────────┐
│With ThisWorkbook.Worksheets("Sheet1")                                      │
│    With .Buttons.Add(.Cells(y, x).Left, _                                  │
│                      .Cells(y, x).Top, _                                   │
│                      .Cells(y, x).Width, _                                 │
│                      .Cells(y, x).Height)                                  │
│        .Name = "button" & Format(y * 100 + x, "0000")                      │
│        .Font.Name = "MS ゴシック"                                        │
│        .Font.Size = 9                                                      │
│        .Text = "ボタン"                                                    │
│    End With                                                                │
│End With                                                                    │
└──────────────────────────────────────┘
分類:ExcelVBA
ExcelVBA/オートフィルタを解除する
2014年08月16日
基本は以下の通り。
┌──────────────────────────────────────┐
│Worksheets.AutoFilterMode = False                                           │
└──────────────────────────────────────┘

「Worksheets」を部分を、以下のようにファイル内ループで全シートとかにすれば
一括解除できる。
┌──────────────────────────────────────┐
│Dim objSheet As Object                                                      │
│Dim sh As Worksheet                                                         │
│For Each sh In ThisWorkbook                                                 │
│    sh.AutoFilterMode = False                                               │
│Next sh                                                                     │
└──────────────────────────────────────┘
分類:ExcelVBA
VBA/オブジェクトの始末
2014年08月15日
オブジェクトを作ったら、最後いや用無しになった段階で
「Nothing」を代入して解放してあげましょうね。
┌──────────────────────────────────────┐
│Set オブジェクト = Nothing                                                  │
└──────────────────────────────────────┘

以下のようにやってあげれば丁寧かも。
┌──────────────────────────────────────┐
│If オブジェクト IsNot Nothing Then Set オブジェクト = Nothing               │
├──────────────────────────────────────┤
│If Not オブジェクト Is Nothing Then Set オブジェクト = Nothing              │
└──────────────────────────────────────┘
いや、無駄か。う~ん、わからん。ただ単に無条件で代入してあげても問題ないかも。
分類:ExcelVBA
データオブジェクトの変遷
2014年08月14日
以下のような感じなんですかね。。。
┌──────────────────────────────────────┐
│DAO(Data Access Objects)                                                    │
│RDO(Remote Data Objects)                                                    │
│ADO(ActiveX Data Objects)                                                   │
│                                                                            │
│ODBC(Open Database Connectivity)                                            │
│OLE DB(Object Linking and Embedding, DataBase)                              │
│COM(Component Object Model)                                                 │
│                                                                            │
│JDBC(Java DataBase Connectivity)                                            │
│SOAP(Simple Object Access Protocol)                                         │
│                                                                            │
│SQL/CLI                                                                     │
└──────────────────────────────────────┘
┌──────────────────────────────────────┐
│┌───┐    ┌───┐                                                    │
││ DAO  │┬→│ ADO  │WindowsXP以前   =ADO2.x                            │
│└───┘│  └───┘WindowsVista以降=ADO6.x                            │
│┌───┐│  ┌───┐                        ┌───┐┌───┐        │
││ RDO  │┘  │ ODBC │                        │ JDBC ││ SOAP │        │
│└───┘    └───┘                        └───┘└───┘        │
│        ┌───┐  ┌───┐  ┌───┐                                  │
│        │ OLE  │→│ COM  │→│ .NET │                                  │
│        └───┘  └───┘  └───┘                                  │
└──────────────────────────────────────┘
分類:設計
ExcelVBA/ActiveXコントロール部品の設定
2014年08月13日
「デザインモード」にした上で右クリックで「プロパティ」を編集する

共通の代表的なプロパティ
・フォント  …フォントタイプのみ代表的に表示されるが
              詳細設定でフォントサイズも変更できる

ボタンの代表的なプロパティ
・Caption  …ボタンのラベル名

コンボボックス(プルダウンメニュー)の代表的なプロパティ
・Style=2(fmStyleDropDownList)  …入力禁止にする
分類:ExcelVBA
ExcelVBA/ボタンを追加する
2014年08月12日
「開発タブ」の「挿入」。
分類:ExcelVBA
人員配置の変遷
2014年08月11日
行きつく先は人工知能なのか。こんな段階を踏んでいるところだろう。
┌──────────────────────────────────────┐
│        ┌──────┐  ┌──────┐  ┌──────┐                │
│設計担当│アーキテクト│  │アーキテクト│  │アーキテクト│                │
│        ├──────┤  ├──────┤  ├──────┤                │
│製造担当│ プログラマ │→│  (ツール)  │→│  (ツール)  │                │
│        ├──────┤  ├──────┤  ├──────┤                │
│評価担当│   テスタ   │  │   テスタ   │  │  (ツール)  │                │
│        └──────┘  └──────┘  └──────┘                │
└──────────────────────────────────────┘

でも、実際は「システムエンジニア」という名のプログラマが全てを兼ねてたりする。
┌──────────────────────────────────────┐
│        ┌──────┐  ┌──────┐                                  │
│設計担当│アーキテクト│  │アーキテクト│                                  │
│        │     兼     │  │     兼     │                                  │
│製造担当│ プログラマ │OR│ プログラマ │                                  │
│        ├──────┤  │     兼     │                                  │
│評価担当│   テスタ   │  │   テスタ   │                                  │
│        └──────┘  └──────┘                                  │
└──────────────────────────────────────┘
分類:設計
前へ 1 … 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 … 156 次へ