2016/09/17

VBAでJavaのListっぽいこと

'' 変数宣言
Dim list As Object

'' リストオブジェクト作成
Set list = CreateObject("Scripting.Dictionary")

'' キー、値追加
list.add "key", "value"

'' キーを指定して、値を参照
list("key")

'' 件数
list.Count

'' 指定したキーが存在するかどうかチェック
list.Exists("key")

'' ループ
Dim listKey as Object
Dim val As Object

Set listKey = list.Keys
For Each val In listKey
  '' キーを指定してリストにアクセス
  list(val)
Next

2014/10/28

コンストラクタ

・PHPの場合


関数名「__construct」で定義する。(※先頭にアンダースコア2つ)
引数を指定することも可。

例)
class classNameA {

  // コンストラクタ
  function __construct() {
    // 処理を記述
  }
}

※PHP 5.3.0-5.3.2 までは、クラス名と同じ関数名を定義することでコンストラクタとみなされていたが、PHP 5.3.3 以降は、みなされなくなった。

・Javaの場合


クラス名と同じ関数名で定義する。
戻り値の型は記載しない。
引数を指定することも可。

class classNameA {

  // コンストラクタ
  public classNameA() {
    // 処理を記述
  }
}

<参考>
http://php.net/manual/ja/language.oop5.decon.php

2014/10/03

Excelにおける罫線設定のアクセスキー

アクセスキー(※1)を使用することで、マウス操作よりも素早く罫線を設定することができます。
書式設定する前に、罫線を設定したい範囲を選択しておきましょう。

※1.アクセスキー
Windows基本操作のひとつ。
メニュー項目の後ろに表示される括弧つきのアルファベット1文字がアクセスキー。
ALTキーを押しながらアルファベットを入力することで、該当メニューを選択したことになる。

罫線のアクセスキー

罫線にアクセスキーが表示されていませんが、実際は設定されています。
ALTキーを押しながら、上記画像のアルファベットを入力することで、該当箇所の罫線あり、なしが切り替わります。
設定を確定させる場合はOKボタンをクリックします。
間違ってしまった場合は、キャンセルします。

※括弧内の文字は、アクセスキーを連想させるような単語を入れておきました。正確ではないかもしれません。

2014/08/22

PHPにおける文字列分割について

普通にsplit関数でも使えばよいのだろうと思っていたのだが、そうでもなかった。
split関数は、PHP5.3.0から非推奨とのこと。

・区切り文字で分割したい→explode
・正規表現で分割したい→preg_split

<参考>
http://kyoheigl.me/blog/php/271

2014/08/20

PHPにおける日付書式指定について

月、日に前ゼロをつけたくない場合は、下記のように指定する。

// 日付変数を生成
$datetime = new DateTime();

// フォーマット
$datetime->format(Y/n/j);

※前ゼロをつける場合は「Y/m/d」でよい。

<参考>
http://ponk.jp/php/datetime/function

PHPにおけるCSV出力について

CSV出力には、fpuscsv関数を利用するのが簡単だが、文字コードの指定ができないなど
不便な点がいくつかある。

// 追記モードでファイルを開く
$fp = foepn('ファイルパス', 'a');

// CSV出力用の配列を用意
$line = array();
$line[] = "a";
$line[] = "b";
$line[] = "c";
$line[] = "d";

// 配列を自動的にCSV出力
fputcsv($fp, $line);

// ファイルクローズ
fclose($fp);


(問題点)
 ・文字コードの指定ができない。
 ・エンクロージャを必ず付ける(付けない)ような指定ができない。
 ・改行コードの指定ができない。

この問題を解決する場合は、自前で出力データを編集してファイル出力するしかない。

// 追記モードでファイルを開く
$fp = foepn('ファイルパス', 'a');

// 出力データを編集(改行コードはCRLF)
$line = "a,b,c,d\r\n";

// UTF-8をSJISに変換して出力
fwrite($fp, mb_convert_encoding($line, 'SJIS', 'UTF-8'));

// ファイルクローズ
fclose($fp);