外部 UTF-8 ファイル

Posted by muchag | Excel VBA |
初回投稿:2015-05-20 (水) 16:45:27 | 最終更新:2018-09-16 (日) 21:36:23

毎回同じ質問を Google 先生にしているので、いい加減まとめておきます。。。

【環境】
Excel:2010
準備

文字コード UTF-8 に対応するためには、ライブラリの参照設定が必要。

Visual Basec Editor の
[ツール]-[参照設定] [参照可能なライブラリ ファイル] [Microsoft ActiveX Data Object *.* Library] というのが複数並んでいるので、2.5以降にチェック。
(まぁ、最新がよいのではないでしょうか)

読み込み
文字コード変換
[evba language=”vb” firstline=”” highlight=””] Dim csv As String

With CreateObject(“ADODB.Stream”)
.Charset = “UTF-8”
.Open
.LoadFromFile “C:\hoge.csv”
csv = .ReadText
.Close
End With
[/evba] これで、変数 csv に、ファイル全体文字列が格納されているので
適宜整形して、利用。

改行コード変換

改行コード については、こんな感じ。

Excel 用に vbCrLf で統一しておく方が問題が出ないので
下記のように置換すると吉。
[evba language=”vb” firstline=”” highlight=””] csv = Replace(csv, vbLf, vbCrLf)
csv = Replace(csv, vbCr, vbCrLf)
[/evba]

利用
CSV
[evba language=”vb” firstline=”” highlight=””] Dim arrLines As Variant
arrLines = Split(csv, vbCrLf)

Dim arrFieldsAs Variant
For index = 0 To UBound(arrLines)

arrFields= Split(arrLines(index ), “,”)

Next
[/evba]

書き出し

読み込み編とは時期が異なったので、書き方が全然違うけど、
そこは気にしない!
[evba language=”vb” firstline=”” highlight=””] Dim string as String
Dim i As Long
Dim j As Integer

Dim outStream As ADODB.Stream
Set outStream = New ADODB.Stream

‘ADODB.Stream の設定
With outStream
.Type = adTypeText
.Charset = “UTF-8”
.LineSeparator = adLF ‘改行コードをLFに指定(adCRLF)
.Open
End With

‘ データの書き出し
For i = 1 To 100
For j = 1 To 5
If j > 1 Then string = string & “,”

string = string & Cells(i, j).Value
Next j

outStream.WriteText string , adWriteLine
Next i

‘BOMを削る前処理
outStream.Position = 0 ‘ファイル先頭にセット
outStream.Type = adTypeBinary ‘バイナリに変更
outStream.Position = 3 ‘BOMの3バイト分スキップ

‘BOMを削った分をコピー
Dim outStreamCopy As New ADODB.Stream
outStreamCopy.Type = adTypeBinary
outStreamCopy.Open
outStream.CopyTo outStreamCopy

‘CSVファイルに保存
outStreamCopy.SaveToFile Activebook.Path & “\text_utf8n.csv”, adSaveCreateOverWrite

‘クローズ処理
outStream.Close
outStreamCopy.Close
Set outStream = Nothing
Set outStreamCopy = Nothing
[/evba]

ユーティリティー

毎回書いていられないので、ユーティリティークラスを作成。

utilUtf8
[evba language=”vb” firstline=”” highlight=””] Option Explicit

Public Function inputStream(ByVal filePath As String) As String

Dim strWhole As String

With CreateObject(“ADODB.Stream”)
.Charset = “UTF-8”
.Open
.LoadFromFile filePath
strWhole = .ReadText
.Close
End With

strWhole = Replace(strWhole, vbLf, vbCrLf)
strWhole = Replace(strWhole, vbCr, vbCrLf)

Set inputStream = strWhole

End Function

Public Function getOutStream(ByVal outStream As ADODB.Stream) As ADODB.Stream

‘ADODB.Stream の設定
With outStream
.Type = adTypeText
.Charset = “UTF-8”
.LineSeparator = adLF ‘改行コードをLFに指定
.Open
End With

Set getOutStream = outStream

End Function

Public Sub outputStream(ByVal outStream As ADODB.Stream, ByVal filePath As String, ByVal noBom As Boolean)

If noBom Then
‘BOMを削る前処理
outStream.Position = 0 ‘ファイル先頭にセット
outStream.Type = adTypeBinary ‘バイナリに変更
outStream.Position = 3 ‘BOMの3バイト分スキップ
End If

‘BOMを削った場合に備えてコピーを出力
Dim outStreamCopy As New ADODB.Stream
outStreamCopy.Type = adTypeBinary
outStreamCopy.Open
outStream.CopyTo outStreamCopy

‘ファイルに保存
outStreamCopy.SaveToFile filePath, adSaveCreateOverWrite

outStreamCopy.Close
Set outStreamCopy = Nothing

outStream.Close

End Sub
[/evba]

参考サイト

Excel VBAでUTF-8(BOM無し)に変換してCSV出力してみる
→書き出し編。参考というより、ソースを頂戴しました。ありがとうございます♪

Posted by muchag | Excel VBA |
初回投稿:2015-05-20 (水) 16:45:27 | 最終更新:2018-09-16 (日) 21:36:23

Excel VBA Index

Posted by muchag | Excel VBA |
初回投稿:2015-05-20 (水) 16:41:22 | 最終更新:2019-11-04 (月) 19:53:14

私が初めて仕事で携わった言語。
もう長いお付き合いになりますね。。。
今後ともよろしくお願いします!

丸っきりの書きかけ項目は Not found になる。
 

セル
  1. コピー、切り取り、貼り付け
Tips
  1. HTTP リクエスト
  2. 外部 UTF-8 ファイル
  3. コントロールの動的配置
  4. サブディレクトリ一覧を取得
  5. 正規表現
  6. 宣言と初期化
  7. 入力規則の設定
  8. 配列
    1. 連想配列
  9. メソッドの引数
  10. クラス
    1. 雛型
  11. VBE のカラーリング
番外:本体編
  1. 画像抽出

 

がい~ん!(はまったこと)
  1. 解決済み(たぶん)
    1. 引数があるメソッドの呼び出しエラー
  2. 未解決

 

参考

MSDN:Excel VBA リファレンス

Posted by muchag | Excel VBA |
初回投稿:2015-05-20 (水) 16:41:22 | 最終更新:2019-11-04 (月) 19:53:14

公式チュートリアル

Posted by muchag | Symfony 1.x |
初回投稿:2015-05-14 (木) 14:47:06 | 最終更新:2015-11-20 (金) 17:54:06

公式のチュートリアルに一覧表がないので
一覧のためのページ。

gentle-introduction
  1. 第1章 – symfony の紹介
  2. 第2章 – symfony のコードを探求する
  3. 第3章 – symfony を動かす
  4. 第4章 – ページ作成の基本
  5. 第5章 – symfony を設定する
  6. 第6章 – コントローラーレイヤーの内側
  7. 第7章 – ビューレイヤーの内側
  8. 第8章 – モデルレイヤーの内側 (Doctrine)
  9. 第9章 – リンクとルーティングシステム
  10. 第10章 – フォーム
  11. 第11章 – Eメール
  12. 第12章 – キャッシュ
  13. 第13章 – 国際化とローカライゼーション
  14. 第14章 – Admin ジェネレーター
  15. 第15章 – ユニットテストと機能テスト
  16. 第16章 – アプリケーションの運用ツール
  17. 第17章 – symfony を拡張する
  18. 第18章 – パフォーマンス
  19. 第19章 – symfony の設定ファイルをマスターする
フォーム

目次:Forms
(やっと目次を発見できた・・・)

  1. 第1章 – フォームの作成
  2. 第2章 – フォームのバリデーション
  3. 第3章 – Web デザイナのためのフォーム
  4. 第4章 – Propel との統合
jobeet 1.4 on doctrine
  1. 1日目: プロジェクトを始める
  2. 2日目: プロジェクト
  3. 3日目: データモデル
  4. 4日目: Controller と View
  5. 5日目: ルーティング
  6. 6日目: モデルの詳細
  7. 7日目: カテゴリページで遊ぶ
  8. 8日目: ユニットテスト
  9. 9日: 機能テスト
  10. 10日目: フォーム
  11. 11日目: フォームをテストする
  12. 12日目: アドミンジェネレータ
  13. 13日目: ユーザー
  14. 14日目: フィード
  15. 15日目: Web サービス
  16. 16日目: メーラー
  17. 17日目: 検索
  18. 18日目: AJAX
  19. 19日目: 国際化とローカライゼーション
  20. 20日目: プラグイン
  21. 21日目: キャッシュ
  22. 22日目: デプロイ
  23. 23日目: 別の視点から symfony を見る
1.4 Doctrine

Doctrine のテーブル継承の活用

1.2 Doctrine

Doctrine

Posted by muchag | Symfony 1.x |
初回投稿:2015-05-14 (木) 14:47:06 | 最終更新:2015-11-20 (金) 17:54:06

Symfony 1.x のデバッグ

Posted by muchag | Eclipse,OpenPNE 3.x,Symfony 1.x |
初回投稿:2015-04-27 (月) 12:19:28 | 最終更新:2015-12-17 (木) 18:03:30

自作のプログラムなら簡単にデバッグできるけど
Symfony のようなフレームワークは、よくわからなかったので、調べてみた。

【環境】
Eclipse: Luna Service Release 1 (4.4.1)
Symfony: 1.4.13
デバッグの構成
[実行]-[デバッグの構成] [PHP Web アプリケーション] 初めての場合は、自動で新規構成が表示される。
2つ目以降は、左ペインツールバーにある [新規の起動構成] をクリック。

サーバー
名前

自由。

サーバー

任意に選択。

未設定の場合は、Xdebug 再び! 参照。

ファイル
[参照] から、(Symfony プロジェクト)\web\index.php を選択すると
/(Symfony プロジェクト)/web/index.php
と入力される。

2015-12-17 追記 ここから

今日は、上述のやり方ではできなかった。
Xdebug 再び! に追記しておいたので、参照。

2015-12-17 追記 ここまで
URL
[自動生成] のチェックを外す。
すると、右のテキストボックスがアクティブになる。

左のテキストボックスには「http://localhost/」と入っている。

これで、XAMPP の htdocs までのパスは確保されているので
右のテキストボックスに、それ以下を記述。
「/(appname)/index.php」(自分の環境に適宜合わせる)

適用
[適用] をクリック。

参考サイト

Layer8:Windows上のEclipseでsymfonyをデバッグする方法

Posted by muchag | Eclipse,OpenPNE 3.x,Symfony 1.x |
初回投稿:2015-04-27 (月) 12:19:28 | 最終更新:2015-12-17 (木) 18:03:30

UI -> dialog

Posted by muchag | jQuery |
初回投稿:2015-04-07 (火) 16:53:37 | 最終更新:2015-04-07 (火) 17:00:05

ダイアログウィジェット。

jQuery UI:Dialog Widget

ボタン要素
テキスト
  1. buttons: {
  2.     'AAA': function( event ) {
  3.         if ( $( event.target ).text() == 'AAA' ) {
  4.             $( event.target ).text( 'XXX' );
  5.         }
  6.         else if ( $( event.target ).text() == 'XXX' ) {
  7.             $( event.target ).text( 'AAA' );
  8.         }
  9.     },
  10.     'キャンセル': function() {
  11.         $( this ).dialog( 'close' );
  12.     }
  13. },

これで、ボタンをクリックする毎にテキストを入れ替えることができた。
けど、ボタンのサイズが。。。ちっちゃくなっちゃった。。。

参考サイト

StackTrace jQuery UI API 1.8.4 日本語リファレンス:Dialog
→ボタンテキストの取得はこちらを参考にさせていただいた
js STUDIO:Dialog
jQuery UI の使い方:dialog(options)
Qiita:Dialogのボタンそれぞれにclassを設定する
→ボタンのオプション指定について、他とは異なった書式が紹介されている

Posted by muchag | jQuery |
初回投稿:2015-04-07 (火) 16:53:37 | 最終更新:2015-04-07 (火) 17:00:05

UI -> 概要

Posted by muchag | jQuery |
初回投稿:2015-04-07 (火) 16:43:17 | 最終更新:2015-04-07 (火) 16:46:49

jQuery のユーザーインターフェース担当。

jQuery UI

DL

jQuery UI:Download Builder
ここから、全体、もしくは必要機能に絞った DL ができる。

テーマ

ユーザーインターフェースのテーマが、デフォルトで24種類用意されている。

jQuery UI:ThemeRoller
ここの左ペインにある ThemeRoller。
Roll Your Own タブでカスタマイズができる。
Gallary タブで、デフォルト24種類を一覧できる。

Posted by muchag | jQuery |
初回投稿:2015-04-07 (火) 16:43:17 | 最終更新:2015-04-07 (火) 16:46:49

.each()

Posted by muchag | jQuery |
初回投稿:2015-04-05 (日) 21:56:46 | 最終更新:2016-02-27 (土) 12:06:10

エレメント集合の1つ1つに順番にアクセスするメソッド。

jQuery:.each()

【環境】
jQuery:1.11.2
書式
  1. <ul>
  2.   <li>foo</li>
  3.   <li>bar</li>
  4. </ul>
  1. $( "li").each(function(index) {
  2.   console.log(index + ": " + $(this).text());
  3. });

 

continue, break

continue → return true
break → return false

地潜の日記:jQuery の each() の continue / break は・・・

Posted by muchag | jQuery |
初回投稿:2015-04-05 (日) 21:56:46 | 最終更新:2016-02-27 (土) 12:06:10

jquery.combobox.js

Posted by muchag | jQuery,Library & PlugIn & AddIn |
初回投稿:2015-04-03 (金) 10:15:30 | 最終更新:2015-04-03 (金) 10:15:30

選択、入力ともにできるコンポーネントが欲しくて
コンボボックスのやり方を調べてみた。

HTML5 になって、テキストボックスに候補を表示することができるようになったみたいだけど、オートコンプリート機能のためらしく、1文字入れるだけで候補が絞られちゃう。
仕方ないので、JavaScript で実現。
作者の方、ありがとうございます!

DL

SQL の窓:使いどころが難しいですが、入力をコンボボックス化する jQuery プラグインの実装が不便だったので、modify しました。
のリンクから
jquery.combobox.js
style.css
をいただいてきた。

導入

上記プラグインファイルと CSS ファイルを読み込む。

  1. <input type="text" id="hoge" />
  1. $( '#hoge' ).combobox([
  2.     '1',
  3.     '2',
  4.     '3',
  5. ]);

これで終わり!
かんた~ん♪

Posted by muchag | jQuery,Library & PlugIn & AddIn |
初回投稿:2015-04-03 (金) 10:15:30 | 最終更新:2015-04-03 (金) 10:15:30

Highstock -> ローソク足(CandleStick)

Posted by muchag | JavaScript |
初回投稿:2015-03-31 (火) 16:56:55 | 最終更新:2015-04-01 (水) 16:09:35

【環境】
Highstock 2.1.4
tooltip

ツールチップのカスタマイズ。

formatter
  1. var options = {
  2.     tooltip: {
  3.         formatter: function() {
  4.             var s = '';
  5.  
  6.             $.each( this.points, function( i, point ) {
  7.                 s += moment.utc( point.x ).format( 'YYYY-MM-DD' ) + '<br />';
  8.                 s += '<b>' + moment.utc( point.x ).format( 'hh:mm' ) + '</b><br />';
  9.                 s += '始値:' + point.point.open + '<br />';
  10.                 s += '高値:' + point.point.high + '<br />';
  11.                 s += '安値:' + point.point.low + '<br />';
  12.                 s += '終値:' + point.point.close;
  13.             });
  14.  
  15.             return s;
  16.         },
  17.     },
  18. };
i

引数の i は、index
複数データ系列(series)の場合には、index で、どのデータ系列の値かを判別。

  1. $.each( this.points, function( i, point ) {
  2.     if ( i == 0 ) {
  3.         s += moment.utc( point.x ).format( 'YYYY-MM-DD' ) + '<br />';
  4.         s += '<b>' + moment.utc( point.x ).format( 'hh:mm' ) + '</b><br />';
  5.         s += '始値:' + point.point.open + '<br />';
  6.         s += '高値:' + point.point.high + '<br />';
  7.         s += '安値:' + point.point.low + '<br />';
  8.         s += '終値:' + point.point.close + '<br />';
  9.     }
  10.     else {
  11.         s += '売買高:' + point.point.y;
  12.     }
  13. });
point

こちらの場合は、始値などは point.open では undefined となり
point.point.open でないと取れなかった。

pointFormat
  1. var options = {
  2.     tooltip: {
  3.         pointFormat: '<span style="color:{series.color}">\u25CF</span> {series.name}:<br/>始値: {point.open:.2f} <br> 高値: {point.high} <br> 安値: {point.low} <br> 終値: {point.close}' ,
  4.     },
  5. };

{point.open:.2f} とすることで、有効桁数が小数点第2位までとなるみたい。

{point.x} とすることで、X軸値を取ることができたけど
タイムスタンプの整形する方法がわからなかった。

参考サイト

Highcharts:OHLC and Candlestick Localization
stackoverflow:Highstock – How can i display the open, high, low, close in the line or area charts tooltip

Posted by muchag | JavaScript |
初回投稿:2015-03-31 (火) 16:56:55 | 最終更新:2015-04-01 (水) 16:09:35

Highcharts 4.1.4

Posted by muchag | JavaScript,Library & PlugIn & AddIn |
初回投稿:2015-03-30 (月) 14:20:41 | 最終更新:2016-01-17 (日) 11:53:06

歩み値からチャートについて
Flotr2 で頑張ってみたけど
X軸値が日付(タイムスタンプ)のせいか、うまくローソクの幹を描画できなかったので
Highcharts を試してみる。

2016-01-17

バージョンアップが行われたので、念のため新しく書き直し。
新記事:Highcharts 4.2.1

2016-01-17
【環境】
Highcharts 4.1.4
Highstock 2.1.4
Highmaps 1.1.4
導入
ダウンロード

Highcharts:Download
ここにダウンロード用のリンクがある。

Highcharts 4.1.4
Highstock 2.1.4
Highmaps 1.1.4
3種あり、Highstock Demos › Candlestick を見る限りでは
ローソク足を実現するには、Highstock みたい。

オリジナルパッケージ

必要な物だけをパッケージしてくれる
Download builder (experimental)
というものもある。

直リンク

Highcharts へリンクを張るのでもいいみたい。

… or just grab the files directly from code.highcharts.com.

  1. <script src="http://code.highcharts.com/stock/highstock.js"></script>
  2. <script src="http://code.highcharts.com/stock/modules/exporting.js"></script>
書式
  1. $( '#chart_candlestick' ).highcharts( 'StockChart', getOptions() );
基本設定

Highcharts:Options Reference
Highcharts
Highstock
部品説明
Highmaps

navigator

navigator

adaptToUpdatedData

データがアップデートされたときに、ナビゲーターを最適化するか。

これを false にして、リアルタイム更新グラフを作成すると
X軸の表示幅が自動で変更にならないので
グラフは生成されているのに、見えないエリアが出てくる。

デフォルトは true。

plotOptions(描画オプション?)
series
marker

プロットマーカーの表示、非表示。

  1. enabled: false,
turboThreshold

データ個数最大値。
デフォルトが 1000。
0 で無制限。

PILOG:Highcharts JSは1000件を超えるデータはプロットできません。デフォルトでは。

xAxis(X軸)

xAxis

gridLineWidth

0 に設定すると、縦のグリッド線は引かれない。

minRange

X軸ズームの最低値。

range

X軸値の表示幅?

識別子
日時
識別子 内容
%Y 西暦:4桁
%y
%m 月:2桁(0Full)
%b 月:英語3桁
%d 日:2桁(0Full)
%e
%H 時:2桁(0Full)
%M 分:2桁(0Full)
%S 秒:2桁(0Full)
%L ミリ秒:3桁(0Full)
Posted by muchag | JavaScript,Library & PlugIn & AddIn |
初回投稿:2015-03-30 (月) 14:20:41 | 最終更新:2016-01-17 (日) 11:53:06
« 前ページへ次ページへ »