MW211 EXIT

devlog
ExcelVBA/図形の全削除
2018年07月19日
┌──────────────────────────────────────┐
│Dim i As Integer                                                            │
│With シート                                                                 │
│    For i = .Shapes.Count To 1 Step -1                                      │
│        .Shapes(i).Delete                                                   │
│    Next i                                                                  │
│End With                                                                    │
└──────────────────────────────────────┘
分類:ExcelVBA
ExcelVBA/オートシェイプ(テキストボックス)のコピー
2018年07月18日
┌──────────────────────────────────────┐
│入力シート.Shapes("テキスト ボックス").Copy                                 │
│With 出力シート                                                             │
│    .Cells(3, 3).Select                                                     │
│    .Paste                                                                  │
│End With                                                                    │
└──────────────────────────────────────┘
テキストボックスに数式(参照先)が設定されていたら
そのまま相対的にコピー先のセル(参照先)を指すことになる。
分類:ExcelVBA
PowerBI/累計
2018年07月17日
      ┌──┬──┬──┐
      │ 月 │ 値 │累計│
      ├──┼──┼──┤
 1件目│   4│   1│   1│
      ├──┼──┼──┤
 2件目│   5│  10│  11│
      ├──┼──┼──┤
 3件目│   6│ 100│ 111│
      └──┴──┴──┘
こういったデータの場合、その月までの累計をとるとして、その数式は
PowerBI(DAX関数)ではどのように設定するか?(ExcelならSUMIF()なのだが)

方法としては二通りある。
┌──────────────────────────────────────┐
│累計 = SUMX(FILTER('クエリ名', [月] <= EARLIER([月])), [値])                │
├──────────────────────────────────────┤
│累計 = CALCULATE(SUM([値]), FILTER('クエリ名', [月] <= EARLIER([月])))      │
└──────────────────────────────────────┘

EARLIER()はその行のみを指す関数である。
ちなみにEARLIER()なしで「FILTER('クエリ名', [月] <= [月])」とすると
自身(月)同士をおのおので比較するのですべて真になってしまう。
分類:PowerBI
Excel関数/累計(SUMIF)
2018年07月16日
         A列   B列   C列
      ┌──┬──┬──┐
 1行目│ 月 │ 値 │累計│
      ├──┼──┼──┤
 2行目│   4│   1│   1│=SUMIF(A:A,"<="&A2,B:B)
      ├──┼──┼──┤
 3行目│   5│  10│  11│=SUMIF(A:A,"<="&A3,B:B)
      ├──┼──┼──┤
 4行目│   6│ 100│ 111│=SUMIF(A:A,"<="&A4,B:B)
      └──┴──┴──┘
上記のようにC列の累計をとりたい場合、
C列の数式は上記のように設定すればよい。
分類:Excel
ExcelVBA/ブックの上書保存(2)
2018年07月15日
では、自前で上書保存か否かの判断を行うには?
┌──────────────────────────────────────┐
│If Dir(保存先) = "" Then                                                    │
│    ' 既存なし(上書保存ではなく新規保存)                                    │
│Else                                                                        │
│    ' 既存あり(上書保存)                                                    │
│End If                                                                      │
└──────────────────────────────────────┘
Dir()で保存先があれば戻り値が帰ってくるので、それがあるか否かで判断できる

例えば、ファイル選択ダイアログと組み合わせた場合には
以下のような処理となる。
(上書を拒否したら再度選択画面に戻る仕組みとなっている)
┌──────────────────────────────────────┐
│Function 保存先選択() As String                                             │
│    Dim メッセージ As String                                                │
│    Dim 保存先 As Variant                                                   │
│    Dim ファイル名 As String                                                │
│    ファイル名 = "初期表示ファイル名.xlsx"                                  │
│    Do                                                                      │
│        保存先 = Application.GetSaveAsFilename( _                           │
│            InitialFileName:=ファイル名, _                                  │
│            FileFilter:="Excelファイル(*.xlsx),*.xlsx" _                    │
│        )                                                                   │
│        ' キャンセル                                                        │
│        If 保存先 = False Then                                              │
│            MsgBox "キャンセルされました。", vbInformation, "処理の中止"    │
│            保存先選択 = ""                                                 │
│            Exit Function                                                   │
│        End If                                                              │
│        ' 新規追加                                                          │
│        If Dir(保存先) = "" Then                                            │
│            Exit Do                                                         │
│        End If                                                              │
│        ' 上書の確認                                                        │
│        ファイル名 = Dir(保存先)                                            │
│        メッセージ = ファイル名 & " は既に存在します。" & vbCrLf _          │
│                   & "上書きしますか?"                                     │
│        If MsgBox(メッセージ, vbYesNo + vbExclamation, "処理の確認") _      │
│                                                                = vbYes Then│
│            Exit Do                                                         │
│        End If                                                              │
│    Loop                                                                    │
│    保存先選択 = 保存先                                                     │
│End Function                                                                │
└──────────────────────────────────────┘
分類:ExcelVBA
ExcelVBA/ブックの上書保存(1)
2018年07月14日
基本的に、以下のようにブックを保存した場合、保存先のパスに同一ファイル名があると
保存するか否かのダイアログが開いてしまう。
(そこで「いいえ」とかにするとエラーになってしまう)
┌──────────────────────────────────────┐
│ブック.SaveAs Filename:=保存先, _                                           │
│              FileFormat:=XlFileFormat.xlOpenXMLWorkbook                    │
└──────────────────────────────────────┘

これを避けるためには、その前後で、
警告メッセージ(DisplayAlerts)を一時的に切ればよい。
┌──────────────────────────────────────┐
│Application.DisplayAlerts = False                                           │
│ブック.SaveAs Filename:=保存先, _                                           │
│              FileFormat:=XlFileFormat.xlOpenXMLWorkbook                    │
│Application.DisplayAlerts = True                                            │
└──────────────────────────────────────┘
シート削除(こちらも確認ダイアログが開く)時と同じ要領だ。
分類:ExcelVBA
HTML/ulタグとliタグ
2018年07月11日
単純に見出しと項目の場合は以下の通り。
┌──────────────────────────────────────┐
│<ul>天下人                                                                  │
│  <li>織田信長</li>                                                         │
│  <li>豊臣秀吉</li>                                                         │
│  <li>徳川家康</li>                                                         │
│</ul>                                                                       │
└──────────────────────────────────────┘

入れ子にする場合は以下のような感じ。
┌──────────────────────────────────────┐
│<ul>戦国武将                                                                │
│  <li>織田信長</li>                                                         │
│  <li>豊臣秀吉</li>                                                         │
│  <li>徳川家康                                                              │
│    <ul>                                                                    │
│      <li>酒井忠次</li>                                                     │
│      <li>本多忠勝</li>                                                     │
│      <li>榊原康政</li>                                                     │
│      <li>井伊直政</li>                                                     │
│    </ul>                                                                   │
│  </li>                                                                     │
│</ul>                                                                       │
└──────────────────────────────────────┘


CSS的には以下のような感じか。
┌──────────────────────────────────────┐
│ul {                                                                        │
│    padding-left        :0;                                                 │
│}                                                                           │
│ul > li {                                                                   │
│    margin-left         :1em;                                               │
│}                                                                           │
└──────────────────────────────────────┘
  ・特にしていないとulタグの左横に適当に余白(padding)ができる
  ・liタグには「・」等の印が先頭につくが、範囲外の左側につくので
    左にmarginを開けた方がよい
    なお、前述のulタグの適当な余白と組み合わせれば見えるが
    その余白をなくしてしまうと、左詰めで「・」が見えなくなる
                                  ┌────────┐
  既定の表示イメージ              │    ulタグ      │
                                  │  ・liタグの内容│
                                  │  ・liタグの内容│
                                  └────────┘
                                  ┌────────┐
  paddingを無くした場合のイメージ │ulタグ          │
                                  │liタグの内容    │
                                  │liタグの内容    │
                                  └────────┘
                                  ┌────────┐
  上記CSSのイメージ               │ulタグ          │
                                  │・liタグの内容  │
                                  │・liタグの内容  │
                                  └────────┘
  なお、主な印は以下の通り
  ┌────────────┬──────┬──────┐
  │list-style-type:none;   │なし        │            │
  ├────────────┼──────┼──────┤
  │list-style-type:disc;   │小さい黒丸  │一階層目    │
  ├────────────┼──────┼──────┤
  │list-style-type:circle; │小さい白丸  │二階層目    │
  ├────────────┼──────┼──────┤
  │list-style-type:square; │小さい黒四角│三階層目以降│
  └────────────┴──────┴──────┘
分類:HTML
VC#/listViewのセルに入力するには
2018年07月10日
ダブルクリックすると入力モードになるには以下のパラメータを変えればよい。
┌──────────┐
│動作                │
│┌─────┬───┤
││LabelEdit │True  │(←False)
└┴─────┴───┘
でも、F2は効かないようだ。

ただ、参照専用にしたいのであればこれはいじらない方がよいかも。
分類:VC#
VC#/ListViewのヘッダ設定
2018年07月08日
以下のように親フォームのロード時に、列を追加することによりヘッダ列が設定できる。
┌──────────────────────────────────────┐
│private void フォーム_Load(object sender, EventArgs e)                      │
│{                                                                           │
│    リストビュー.View = View.Details;                                       │
│    リストビュー.Columns.Add("一列目");                                     │
│    リストビュー.Columns.Add("二列目");                                     │
│    リストビュー.Columns.Add("三列目");                                     │
│}                                                                           │
└──────────────────────────────────────┘
なお、詳細表示モード(View.Details)でないとヘッダは表示されない。
分類:VC#
VC#/列幅を自動調整する方法
2018年07月07日
境界線でダブルクリックすると値に応じで自動で伸縮するが、
それをC#のListViewで行う方法。

┌──────────────────────────────────────┐
│ヘッダカラム.Width = -1;                                                    │
└──────────────────────────────────────┘
ヘッダカラムの横幅(.Width)に「-1」を代入すればよい。

全ての列にそれを適用する例は以下の通り。
┌──────────────────────────────────────┐
│foreach (ColumnHeader ヘッダカラム in リストビュー.Columns)                 │
│{                                                                           │
│    ヘッダカラム.Width = -1;                                                │
│}                                                                           │
└──────────────────────────────────────┘
分類:VC#
前へ 1 … 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 … 156 次へ