VBAでクイックソート

前にVBAでバブルソートと選択ソートを行うためのユーザー定義関数を紹介しましたが、今回はクイックソートについて作ってみました。

追記(2015年8月31日)
改良版について記事を書きました。 (さらに…)

矩形範囲を配列として取得

Excelのマクロで「複数のセルに値をセットするときは配列を使うと処理が速い」ということを紹介しました。
複数のセル(範囲)に配列を使って値をセットするだけでなく、配列として値を取得することができます。
「arrs = Range("a1:b2").Value」のようにすると指定した矩形範囲の値を配列として取得できます。 (さらに…)

JavaScriptで配列を操作する

少し前にJavaScriptで配列をシャッフルすることを考えましたが、同じようにして配列を操作するいくつかのサンプルを考えました。 (さらに…)

JavaScriptで配列をシャッフルする

PHPには配列の要素をシャッフルする「shuffle」という関数がありますが、JavaScriptにはないので、メソッドを自作して使っています。
シャッフルというのは要素をランダムにするのではなく、要素の組合せは変えずに順番をランダムにすることです。
[0, 1, 2, 3, 4] を [3, 1, 2, 0, 4]にするような処理です。 (さらに…)

JavaScriptの配列は結合して比較する

次のように変数のaとbに配列[1, 2, 3]を代入します。
aとbは同じはずですが、比較するとなぜかfalseになります。 (さらに…)

JavaScriptの配列関連メソッドをVBAのユーザー定義関数に

VBAでも配列が使えますが、今一つ使いにくいです。配列関係の関数が少ないからでしょうか。
そこでVBAの配列について勉強を兼ねてJavaScriptの配列関連メソッドと同様の処理をするユーザー定義関数を考えてみました。

変数 a, b, c は配列です。
変数 x, y は数値です。
エラー処理は全く考慮していません。配列の宣言も省略しています。Excel2007で確認しました。 (さらに…)

JavaScriptでExcelのRANK関数を再現

配列中の順位を調べる方法を考えました。
ExcelにRANK関数がありますので、これを再現してみます。

サンプルは下の通りです。
updownに従ってarrs内の数値を並べ替えたとき、valueが何番目に位置するかを返します。
updownは、省略または0は降順(最多が1位)、0以外は昇順(最少が1位)となります。 (さらに…)

JavaScriptで順列、組合せ

JavaScriptで配列と抜き取り数を与えると全ての順列、組合せを配列で返す関数です。 (さらに…)

JavaScriptとPHPの配列の個数

JavaScriptでは配列の添字を「100」として値を代入すると要素が101個になります。 (さらに…)

配列からリストを作るサンプル

JavaScriptで配列からHTMLのULを使ったリストを作るユーザー定義関数を作ってみました。
配列を与えるとレベルに応じて入れ子構造になったULリストを文字列で出力します。

function array2ul(a) {
  var t = "";
  var exlevel = 0;
  var level;
  var i, j;
  for (i = 0; i <= a.length; i++) {
    level = i < a.length ? a[i][0] : 0;
    for (j = 0; j < Math.abs(exlevel - level); j++) {
      t += exlevel < level ? "<ul>" : "</ul>";
    }
    t += i < a.length ? "<li>" + a[i][1] + "</li>" : "";
    exlevel = level;
  }
  return t;
}

次のように使います。配列は[レベル,テキスト]という形で与えます。レベルは1から始めます。

var a = [
  [1, "a"],
  [2, "b"],
  [3, "c"],
  [3, "c"],
  [2, "b"],
  [3, "c"],
  [3, "c"],
  [1, "a"],
  [2, "b"],
  [3, "c"],
  [3, "c"],
  [2, "b"],
  [3, "c"],
  [3, "c"]
];
var ul = array2ul(a);

出力結果です。

新しい記事 | 古い記事

タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報