MW211 EXIT

devlog
ExcelVBA/図形の削除
2022年09月27日
┌──────────────────────────────────────┐
│シート.Label除去対象.Delete                                                 │
└──────────────────────────────────────┘
図形(例えばLabel)を削除したい場合に上記のように自ら削除すると
「プロシージャの呼び出し、または引数が不正です」エラーが発生する場合
以下のように、図形をループする形で削除すれば、エラーがでないようだ。
┌──────────────────────────────────────┐
│Dim 図形 As Object                                                          │
│For Each 図形 In シート.OLEObjects                                          │
│    If 図形.Name = "Label除去対象" Then                                     │
│        図形.Delete                                                         │
│    End If                                                                  │
│Next 図形                                                                   │
└──────────────────────────────────────┘
分類:ExcelVBA
PHP/キーブレイク(グループ数)
2022年09月09日
tableタグでrowspanしたい場合、先頭行にて以降で結合する行を
あらかじめ把握しておく必要がある。

これをPHP上であらかじめ算出しておく方法。
┌──────────────────────────────────────┐
│$添字 = 0;                                                                  │
│while ($添字 < count($配列)) {                                              │
│    $old添字1 = $添字;                                                      │
│    $配列[$old添字1]['行数1'] = 0;                                          │
│    do {                                                                    │
│        $old添字2 = $添字;                                                  │
│        $配列[$old添字2]['行数2'] = 0;                                      │
│        do {                                                                │
│            $配列[$添字]['行数1'] = 0;                                      │
│            $配列[$添字]['行数2'] = 0;                                      │
│            $配列[$old添字1]['行数1']++;                                    │
│            $配列[$old添字2]['行数2']++;                                    │
│            $添字++;                                                        │
│        } while (($添字 < count($配列))                                     │
│              && ($配列[$添字]['キー1'] == $配列[$old添字1]['キー1'])       │
│              && ($配列[$添字]['キー2'] == $配列[$old添字2]['キー2']));     │
│    } while (($添字 < count($配列))                                         │
│          && ($配列[$添字]['キー1'] == $配列[$old添字1]['キー1']));         │
│}                                                                           │
└──────────────────────────────────────┘

これを元にSmartyでは以下のように出力する。
┌──────────────────────────────────────┐
│<table>                                                                     │
│{foreach from=$配列 key=no item=i}                                          │
│  <tr>                                                                      │
│{if $i['行数1'] > 0}                                                        │
│    <td rowspan="{$i['行数1']|escape}">{$i['キー1']|escape}</td>            │
│{/if}                                                                       │
│{if $i['行数2'] > 0}                                                        │
│    <td rowspan="{$i['行数2']|escape}">{$i['キー2']|escape}</td>            │
│{/if}                                                                       │
│    <td>{$i['バリュー']|escape}</td>                                        │
│  </tr>                                                                     │
│{/foreach}                                                                  │
│</table>                                                                    │
└──────────────────────────────────────┘
分類:PHP
前へ 1 次へ