2015年12月30日水曜日

MS ACCESSのバグ?報告

MS ACCESSのクエリー(QUERY)で全角数字で始まるフィールド(FIELD)名を持つテーブル(TABLE)はエラーになる

テーブルに下図のような全角数字で始まるフィールド名を設定すると



テーブルは正常にデータビューが起動するが、

下記のような単純データ表示クエリーでデータシートビューを表示しようとすると
(データシートビューだけでなく、とにかく、クエリーを実行しようとすると)


フィールド名がクエリ式と解釈され、「演算子がありません」というエラーになる!
テーブルのデータ型には関係ありません
とにかく、フィールド名の最初の1文字目が全角数字だとこうなります

これは下図のような半角数字で始まるフィールド名では起こらない



上図のテーブル定義で下図のようなクエリを作り、データシートビューをすると


下図のようにデータシートビューは正常に表示される


なんじゃこりゃ
これでかなり悩まされた!
マイクロソフトさん こういうのはやめてーーー
時間返せー

マイクロソフト,アクセス,ACCESS,MS ACCESS,クエリー ,QUERY,テーブル,TABLE

2015年6月27日土曜日

Excel VBA 選択した範囲をいろいろな表現で求める


Excel 選択した範囲をいろいろな表現で求める方法

[program]
Dim ColNo As Long
Dim RowNo As Long
ColNo=Range("G2").Coliumn
RowNo=Range("G2").Row

[Result]
ColNoに数値の2が入る
RowNoに数値の2が入る

[program]
Dim strRange As String
strRange=Range(cells(1,1),Cells(2,2)).Address

[Result]
strRangeに文字列"$A$1:$B$2"が入る


Addressの解説
以下Microsoftヘルプのコピー

Excel 開発者用リファレンス
Range.Address プロパティ
コード記述時の言語で参照範囲を表す文字列型 (String) の値を返します。
構文

式.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)

式   Range オブジェクトを表す変数です。

パラメータ

名前 必須/オプション データ型 説明
RowAbsolute オプション バリアント型 (Variant) 行部分の参照を絶対参照として返すには、True を指定します。既定値は True です。
ColumnAbsolute オプション バリアント型 (Variant) 列部分の参照を絶対参照として返すには、True を指定します。既定値は True です。
ReferenceStyle オプション XlReferenceStyle 参照形式を指定します。既定値は xlA1 です。
External オプション バリアント型 (Variant) 外部参照を返すには、True を指定します。ローカル参照を返すには、False を指定します。既定値は False です。
RelativeTo オプション バリアント型 (Variant) 引数 RowAbsolute と引数 ColumnAbsolute の両方に False が指定されていて、引数 ReferenceStyle に xlR1C1 が指定されると、相対参照の開始点を含める必要があります。この引数は、参照の開始点を定義する Range オブジェクトを使用します。

備考
参照に複数のセルが含まれている場合は、引数 RowAbsolute と引数 ColumnAbsolute はすべての行と列に適用されます。



使用例
次の使用例は、シート 1 の同じセル アドレスを 4 つの異なる方法で表します。コード中のコメントは、メッセージで表示されるアドレスを示しています。

Visual Basic for Applications
Set mc = Worksheets("Sheet1").Cells(1, 1)
MsgBox mc.Address()                              ' $A$1
MsgBox mc.Address(RowAbsolute:=False)            ' $A1
MsgBox mc.Address(ReferenceStyle:=xlR1C1)        ' R1C1
MsgBox mc.Address(ReferenceStyle:=xlR1C1, _
    RowAbsolute:=False,     _
    ColumnAbsolute:=False,  _
    RelativeTo:=Worksheets(1).Cells(3, 3))        ' R[-2]C[-2]


EXCEL VBA セル参照・選択・操作・書式設定方法

参照元:http://home.att.ne.jp/zeta/gen/excel/c04p50.htm

セルを参照する
■Rangeプロパティを使用してセルを参照する
■Cellsプロパティを使用してセルを参照する
■RangeプロパティとCellsプロパティを組み合わせて使用する
■その他のセル、セル範囲の指定方法
・[]を使ってセル範囲を参照する
・インデックス番号を使用してセルを参照する。■セルのアドレスを指定せずに、セルを参照する方法
・Offsetプロパティ
・CurrentRegionプロパティ
・Endプロパティ
・SpecialCellsメソッド
・Selectionプロパティ、ActiveCellプロパティ
・Namesプロパティ

セルを選択する
■Selectメソッド、Activateメソッド
■Gotoメソッド
■Resizeプロパティ
■Unionプロパティ

セルを操作する
■セルの値を取得・設定する
・Valueプロパティ、Formulaプロパティ
■セルの値をオートフィルする
・AutoFillメソッド
■セルの値をクリアする
・Clearメソッド、ClearContentsメソッド、ClearFormatメソッド、ClearComentsメソッド
■セルの値をコピーする
・Copyメソッド、Pasteメソッド、PasteSpecialメソッド
■セルを挿入・削除する
・Insertメソッド、Deleteメソッド
■セルを結合する
・Mergeメソッド
■セルにふりがなを設定する
・GetPhoneticメソッド、SetPhoneticメソッド
■セルにハイパーリンクを設定する
・Hyperlinks.Addメソッド、Followメソッド、Deleteメソッド

セルの書式を設定する
■セルのフォントを設定する
・Nameプロパティ
・Sizeプロパティ
・Boldプロパティ、Italicプロパティ
・Underlineプロパティ、Strikethroughプロパティ
・ColorIndexプロパティ











EXCEL VBA メニューバー

EXCEL2007以降のメニューバーの話題

参照: 新しいメニューを追加する


参考: エクセル2013基本講座:自作のマクロをリボンに登録する


参考:Excelのメニューに自作したマクロを追加するには @IT


Sub Sample3()
  With Application.CommandBars("Cell").Controls.Add()
    .Caption = "コマンド1"
    .OnAction = "'myMacro3 ""印刷""'"
  End With
  With Application.CommandBars("Cell").Controls.Add()
    .Caption = "コマンド2"
    .OnAction = "'myMacro3 ""保存""'"
  End With
End Sub   

Sub myMacro3(buf As String)
  MsgBox buf & "を実行します"
End Sub