B-Teck!

お仕事からゲームまで幅広く

2016-01-01から1年間の記事一覧

【VBA】パスワードのかかっていないExcelだけ開く

VBA

VBAからパスワードのかかったExcelファイルを開く際、普通にWorkbooks.Openするとパスワード入力ダイアログで止まってしまう。 この場合、パスワードを入力するかダイアログを閉じるまで実行中の処理が停止してしまう。 また、ダイアログを閉じた場合にはエ…

【VBA】配列をソートする

VBA

クイックソート アルゴリズムが少し複雑。早い。 C言語で文字列のクイックソート - テクメモ バブルソート アルゴリズムが簡単。あまり早くない。 バブルソート '/** ' * quickSort ' * 配列をクイックソートする ' * 大小比較できる型ならとりあえずソート…

【VBA】Dir関数で指定パスのサブフォルダを全て取得する

VBA

'/** ' * getTargetFolders ' * 与えられたパス配下のフォルダをサブフォルダまで配列で取得する ' * @param strDirectoryPath パス ' * @return フォルダ名のString配列 ' */ Function getTargetFolders(ByVal strDirectoryPath As String) As String() Dim…

【JavaScript】指定時間後や定期的に処理を実行する。

window.setInterval(function, delay) setIntervalは、functionに与えられた関数・処理をdelay(ms)ごとに繰り返す処理。 window.setTimeout(function, delay) setTimeoutは、functionに与えられた関数・処理をdelay(ms)後に実行する処理。 setIntervalで定義…

【JavaScript】Objectタグのdata要素を変更する

HTMLElement.setAttribute("data",変更後data要素)だとIEでうまくいかなかったので、 IEも対応する場合はObject要素自体のDOMをreplaceChildで置き換えてやる必要がある。 /** * changeObjectData * objectタグの表示内容を更新する * * @param {object} ele…

【VBA/Excel】Excelの印刷総ページ数を取得してCSVで出力する

VBA

Dir関数の注意 Windows由来の問題で3文字より長い拡張子を3文字に切り詰めるらしく、xlsでxlsxもxlsmも取れてしまうらしい。ヤバイ。 Office TANAKA - Excel VBA Tips[Dir関数の注意点] ページ数を取得するPageSetup.Pages.CountがExcel2007~2010でバグって…

【JavaScript】HTMLのテーブルをソートするsorTable.jsを作ってみました

github.com すでにあるのかもしれないけど、jQuery無しで動作するHTMLテーブルのソートのやつを作りました。 Git初心者なのでコミットログが汚い... とりあえず公開してみた状態なので、そのうち直したりしてみようかなと思ってます。 下記はデモページの埋…

【VBA】半角カナを判定する

VBA

Not (Mid(strInput, i, 1) Like "[ヲ-゚]" Or strInput = "-")で不要な文字種を除外。 ※"[ヲ-゚]“と”-“を指定するとカタカナひらがなの必要そうな文字列を抽出できる。 ”-“を半角カナに含みたくない場合はstrInput = "-"を外す。 その後StrConvで一度文字列を半角カ…

【VBA/Access】Option Compareステートメント

VBA

Accessでは、Option Compareステートメントによって文字列の比較方法が決定される。 モジュールを作成した際には自動でDatabaseモードが付加されるが、 この記述を削除し、何も書かなかった場合の既定値はBinaryモードとして定義されている。 モード 概要 Bi…

【JavaScript】ウインドウを閉じたとき子ウインドウも一緒に閉じる

ウインドウにモーダルじゃない子ウインドウがある時、閉じたら一緒に消えてほしかった。 IEでのみ動作確認済み。 コードでは1対1の親子関係しか定義してないけど、childWindowを配列にして突っ込んで、 each()とかmap()とかああいうので回せばいいと思う。 (…

【JavaScript/IE】ウインドウを閉じる

window.open()で開いたウインドウじゃないとか、window.close()だとなんか閉じれない環境があったので。 IE(とChrome)は下記のコードで動いた。 window.open('about:blank','_self').close();

【JavaScript/IE】ウインドウサイズの変更に合わせて要素を拡大縮小する

onresize時に現在のウインドウサイズ変更の比率に合わせてドキュメントの拡大率を動的に変更する。 動作確認はIEのみで、他ブラウザでは正常に動作しないかも。 (function(){ window.addEventListener("resize",windowZoom, false); //ウインドウオープン時…

【JavaScript/IE】ファンクションキーを無効化する

onload時にイベントを無効化することでファンクションキーを動作しないようにできる。 押下時の処理を別で定義することで、Webアプリケーションでもファンクションキーを用いたデスクトップアプリケーションライクな処理を再現できる。 動作確認はIEのみで、…

【雑記】母が死んだ話

とりとめなくポエミーに書く。

【VBA】文字列の大文字小文字を判定する

VBA

自分自身を大文字に変換した後、変換前後を比較すると大文字小文字を判定できる。 VBAでは大文字小文字がイコールではうまく判定されないので、 StrComp("変換文字列1", "変換文字列2", vbBinaryCompare) でバイナリでの比較を行う必要がある。 Option Expli…

【C#/Unity】穴掘り法でダンジョンをランダムで生成する

せっかく経路探索して敵を追いかけるアルゴリズムを書くなら迷路がほしいなと思ったので。 穴掘り法を複数回ループして、分岐を無理やり増やしてるけど袋小路はうまれる。 仕方ないね。 穴掘り法とは 実装 using UnityEngine; using System.Collections.Gene…

【C#/Unity】相手を追尾するAIを考える その2

前回 beatdjam.hatenablog.com はじめに さっきUnityをインストールして環境作ったので、昨日の記事を改めてUnityで実装してみました。 今回も最後に全文のソースコードを載せます。 また、今回掲載するソースは以前掲載した下記記事から一部流用しています…

【JavaScript】相手を追尾するAIを考える その1

はじめに この記事にこんなコメントがつきました。 beatdjam.hatenablog.com コメント失礼します。 ゲーム開発を学んでいるプログラマーの卵です。 敵AIの追尾について勉強していて、 縦横マス目移動でプレイヤーを追尾出来るような敵の処理にしたいのですが…

【PHP】標準入出力を行うクラス

PHP

【PHP】連想配列とかオブジェクトのソート

PHP

多次元連想配列やオブジェクトを詰めた配列はusort関数でいい感じにソートする。 PHP: usort - Manual 多次元連想配列のソートをする場合 "30", "stock" => "100"], ["price" => "20", "stock" => "120"], ["price" => "10", "stock" => "115"]]; //ソート …

​【PHP】英単語を複数形にする

変換ルール 不規則変化の名詞は辞書を持ち、対応する単語に変換する 不規則変化の辞書に単語が存在しない場合、以下の優先順位で単語を変換する 1 . 末尾が「s、sh、ch、o、x」の場合は「es」をつける 2 . 末尾が「f、fe」の場合は「ves」に置き換える 3 . …

【CSS】文章の字下げを行うCSS

CSS

1. 一行目の行頭を字下げする テキストの一行目を字下げするtext-indentプロパティを利用する <style type="text/css"> .sample1{ text-indent:1em; } </style> <p class = "sample1"> どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで</p>…

【PHP】文字列を配列に格納する(マルチバイト対応)

PHP

PHPのstr_splitにマルチバイト版がなかったので書いた。

【JavaScript】undefinedの判定の話

,,

【PHP】2つの文字列を比較して差異の数を取得する

PHP

2つの文字列から、長さの差も含めて差異のある文字数を取得するメソッド。 str_splitのマルチバイト対応版がないので、

【JavaScript】もらい泣きする

なぜ Twitterでこれが流行ってたので思いつきで Javaの講義、試験が「自作関数を作り記述しなさい」って問題だったから「ズン」「ドコ」のいずれかをランダムで出力し続けて「ズン」「ズン」「ズン」「ズン」「ドコ」の配列が出たら「キ・ヨ・シ!」って出力…

【JavaScript】配列からランダムに値を取り出す

/** * randAry * 配列内からランダムに値を取得する * @param {array} i_ary 配列 * @return {object} 配列内の値 */ function randAry(i_ary){ //添字を全て取得 var aryKeys = Object.keys(i_ary); //対象の添字をランダムに取得 var index = aryKeys[Math…

【JavaScript】最小値と最大値を指定して範囲内の値を持った配列を作成する

最新版は下記です。 beatdjam.hatenablog.com /** * range * 範囲内の値を持った配列を作成する * @param {number} min 範囲の最小値 * @param {number} max 範囲の最大値 * @param {function} filer フィルタ関数 * @return {array} 作成した配列 */ functi…

【SQL/SQLServer】作成済みテーブル等の一覧を取得する/存在するかを確認する

テーブルが作成済みかを判定する仕組みを調べたのでメモ 実行環境 SQL Server 2014 Express テーブル等の一覧を取得する SQL Serverで作成されているオブジェクトは全て[DB名称].dbo.sysobjectsというシステムテーブルに保存される。 そのため、下記のような…

【SQL/SQLServer】整数同士の割算の時、結果が必ず整数になってしまう

SQLServerで割り算を行った時、整数同士での割り算の場合は必ず結果が整数になってしまう理由が謎だったので調べた。 実行環境 SQL Server 2014 Express 問題 下記のSQLは1.5という結果が得られるような気がする、と思ってた。 SELECT 3/2 思ってただけだっ…