20141004 詰excel

Post on 18-Dec-2014

623 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

実務で出てきそうな課題に対するOffice用アプリのツカイドコロと最善手の考察

TRANSCRIPT

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

2014/10/4くらもとたつし#AppsForOffice

詰ExcelOffice用アプリの

ツカイドコロ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

くらもとたつし

発表者について

@セカンドファクトリー

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)3

UI & CLOUD Professional

コンサルトレーニング設計、開発

自社プロダクト開発

セカンドファクトリー

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)4

くらもとたつし

開発に従事

TatsushiKuramoto

@ta2c

ta2c

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)5

国内旅行

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)6

47

観光した県の数

国内旅行

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)7

4147

国内旅行観光した県の数

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)8

前回

「slideshare ta2c」でネットで検索

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)9

今回

今夜以降「slideshare ta2c」でネットで検索

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

0

データ サンプルアプリ

<お約束>サンプルに関して、万一ユーザーまたは第三者が何らかの損害を被った場合においても、一切の責任を負うことは出来ませんのでご了承ください。

http://1drv.ms/Zho851

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

1

補足:

内容は個人の見解であり所属する組織の公式見解ではありません

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

2

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

3

今日はこんな話をします

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

4

詰将棋

将棋の実践的な問題集(相手の王様を倒したら勝ち)

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

5

6 5 4 3 2 1

角桂

金桂

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

6

6 5 4 3 2 1

桂歩

金桂

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

7

6 5 4 3 2 1

四銀

桂歩

金桂

2四銀角

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

8

6 5 4 3 2 1

四銀

金桂角

2四銀

2五桂

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

9

将棋の実践的な問題集詰将棋

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

0

Excelの実践的な問題集

将棋の実践的な問題集詰将棋

詰Excel

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

1

300件の顧客データに、●●●列を追加して。

上司

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

2

300件の顧客データに、名前列を追加して。

上司

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

3

300件の顧客データに、名前列を追加して。

上司

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

4

300件の顧客データに、名前列を追加して。

上司

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

5

300件の顧客データに、名前列を追加して。

上司

D4銀

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

6

300件の顧客データに、名前列を追加して。

上司

D5圭

D4銀

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

7

Excelの実践的な問題集

将棋の実践的な問題集詰将棋

詰Excel

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

8

Excelの実践的な問題集詰Excel

Office用アプリの使いどころ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

9

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)3

0

氏名(フルネーム)→名前抽出

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)3

1

300件の顧客データに、名前列を追加して。

上司

<前提>姓と名が

全角スペースで区切られている

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)3

2

シンキングタイム20秒

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)3

3

[A]Excel関数 [B]Office用アプリ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)3

4

[A]Excel関数

田崎 岳

全角スペースより右の文字列を取得

[B]Office用アプリ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)3

5

全角スペースより右の文字列を取得

[A]Excel関数

[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))

[B]Office用アプリ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)3

6

[A]Excel関数 [B]Office用アプリ

ドラッグ

全角スペースより右の文字列を取得

[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)3

7

[A]Excel関数 [B]Office用アプリ

ドラッグ

全角スペースより右の文字列を取得

[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))

DE

MO

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)3

8

[A]Excel関数 [B]Office用アプリ

ダブルクリック※おすすめ

全角スペースより右の文字列を取得

[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)3

9

[A]Excel関数 [B]Office用アプリ

全角スペースより右の文字列を取得

左の行数分コピーされる

[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)4

0

[A]Excel関数

全角スペースより右の文字列を取得

[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))

[B]Office用アプリ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)4

1

[A]Excel関数

全角スペースより右の文字列を取得

[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))

[B]Office用アプリ

田崎 岳

全角スペースで分割し文字列の2番めを取る

① ②

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)4

2

[A]Excel関数

全角スペースより右の文字列を取得

<C2の値>.spl i t ( " " ) [1]

[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))

[B]Office用アプリ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)4

3

<!DOCTYPE html><html>

<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script><script src="https://code.jquery.com/jquery-1.11.1.min.js" type="text/javascript"></script><script>

// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;

Office.initialize = function(reason) {}window.onload = function() {

var btn = document.getElementById('executeButton');btn.onclick = function () {

buttonOnClick();}// タイトルエリアを出力writeTitle(title);

}

// ボタンクリック時のイベントハンドラfunction buttonOnClick() {

writeResult('実行中');

// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,

function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {

// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;

convertCounter = 0;executeConvertItem();

} else {writeResult('取得時エラー:' + result.error.message);

}}

) ;}

// 1件分変換を実行するfunction executeConvertItem() {

// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];

convertValue(originalValue, executeConvertItemCallback);}

// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {

// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);

convertCounter ++;if (convertCounter >= beforeMatrix.length) {

// 変換後の値を設定updateAfterValue();

} else {// 再帰的呼び出しexecuteConvertItem();

}}

// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {

Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {

if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');

} else {writeResult('セット時エラー:' + result.error.message);

}}) ;

}

// タイトルエリアを出力function writeTitle(inString) {

document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {

document.getElementById('resultArea').innerHTML = result;}

// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {

// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);

}// ■■■■■■■■■■■■■■■■■■■■■■

</script></head><body>

<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>

</body></html>

[A]Excel関数

全角スペースより右の文字列を取得

[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))

[B]Office用アプリ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)4

4

<!DOCTYPE html><html>

<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script><script src="https://code.jquery.com/jquery-1.11.1.min.js" type="text/javascript"></script><script>

// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;

Office.initialize = function(reason) {}window.onload = function() {

var btn = document.getElementById('executeButton');btn.onclick = function () {

buttonOnClick();}// タイトルエリアを出力writeTitle(title);

}

// ボタンクリック時のイベントハンドラfunction buttonOnClick() {

writeResult('実行中');

// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,

function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {

// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;

convertCounter = 0;executeConvertItem();

} else {writeResult('取得時エラー:' + result.error.message);

}}

) ;}

// 1件分変換を実行するfunction executeConvertItem() {

// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];

convertValue(originalValue, executeConvertItemCallback);}

// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {

// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);

convertCounter ++;if (convertCounter >= beforeMatrix.length) {

// 変換後の値を設定updateAfterValue();

} else {// 再帰的呼び出しexecuteConvertItem();

}}

// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {

Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {

if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');

} else {writeResult('セット時エラー:' + result.error.message);

}}) ;

}

// タイトルエリアを出力function writeTitle(inString) {

document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {

document.getElementById('resultArea').innerHTML = result;}

// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {

// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);

}// ■■■■■■■■■■■■■■■■■■■■■■

</script></head><body>

<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>

</body></html>

[A]Excel関数

全角スペースより右の文字列を取得

100行

[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))

[B]Office用アプリ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)4

5

[A]Excel関数 [B]Office用アプリ

2列を選択して、実行ボタンを押す

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)4

6

[A]Excel関数 [B]Office用アプリ

2列を選択して、実行ボタンを押す

太郎花子三郎

求めたい値が右列に入る

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)4

7

[セルD2]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))

全角スペースより右の文字列を取得

<!DOCTYPE html><html>

<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>

<script>// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;

Office.initialize = function(reason) {}window.onload = function() {

var btn = document.getElementById('executeButton');btn.onclick = function () {

buttonOnClick();}// タイトルエリアを出力writeTitle(title);

}

// ボタンクリック時のイベントハンドラfunction buttonOnClick() {

writeResult('実行中');

// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,

function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {

// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;

convertCounter = 0;executeConvertItem();

} else {writeResult('取得時エラー:' + result.error.message);

}}

) ;}

// 1件分変換を実行するfunction executeConvertItem() {

// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];

convertValue(originalValue, executeConvertItemCallback);}

// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {

// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);

convertCounter ++;if (convertCounter >= beforeMatrix.length) {

// 変換後の値を設定updateAfterValue();

} else {// 再帰的呼び出しexecuteConvertItem();

}}

// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {

Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {

if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');

} else {writeResult('セット時エラー:' + result.error.message);

}}) ;

}

// タイトルエリアを出力function writeTitle(inString) {

document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {

document.getElementById('resultArea').innerHTML = result;}

// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {

// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);

}// ■■■■■■■■■■■■■■■■■■■■■■

</script></head><body>

<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>

</body></html>

[A]Excel関数 [B]Office用アプリ①範囲選択したn行x2列

の値群を配列でゲット

②左列から名前を抽出(Array.split(“ “)[1])

④ 範囲選択したn行x2列に配列をセット

for文で②③処理繰り返し。

③右列に名前をセット

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)4

8

[セルD2]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))

<!DOCTYPE html><html>

<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>

<script>// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;

Office.initialize = function(reason) {}window.onload = function() {

var btn = document.getElementById('executeButton');btn.onclick = function () {

buttonOnClick();}// タイトルエリアを出力writeTitle(title);

}

// ボタンクリック時のイベントハンドラfunction buttonOnClick() {

writeResult('実行中');

// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,

function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {

// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;

convertCounter = 0;executeConvertItem();

} else {writeResult('取得時エラー:' + result.error.message);

}}

) ;}

// 1件分変換を実行するfunction executeConvertItem() {

// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];

convertValue(originalValue, executeConvertItemCallback);}

// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {

// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);

convertCounter ++;if (convertCounter >= beforeMatrix.length) {

// 変換後の値を設定updateAfterValue();

} else {// 再帰的呼び出しexecuteConvertItem();

}}

// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {

Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {

if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');

} else {writeResult('セット時エラー:' + result.error.message);

}}) ;

}

// タイトルエリアを出力function writeTitle(inString) {

document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {

document.getElementById('resultArea').innerHTML = result;}

// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {

// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);

}// ■■■■■■■■■■■■■■■■■■■■■■

</script></head><body>

<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>

</body></html>

[A]Excel関数 [B]Office用アプリ①範囲選択したn行x2列

の値群を配列でゲット

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)4

9

[セルD2]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))

<!DOCTYPE html><html>

<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>

<script>// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;

Office.initialize = function(reason) {}window.onload = function() {

var btn = document.getElementById('executeButton');btn.onclick = function () {

buttonOnClick();}// タイトルエリアを出力writeTitle(title);

}

// ボタンクリック時のイベントハンドラfunction buttonOnClick() {

writeResult('実行中');

// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,

function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {

// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;

convertCounter = 0;executeConvertItem();

} else {writeResult('取得時エラー:' + result.error.message);

}}

) ;}

// 1件分変換を実行するfunction executeConvertItem() {

// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];

convertValue(originalValue, executeConvertItemCallback);}

// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {

// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);

convertCounter ++;if (convertCounter >= beforeMatrix.length) {

// 変換後の値を設定updateAfterValue();

} else {// 再帰的呼び出しexecuteConvertItem();

}}

// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {

Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {

if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');

} else {writeResult('セット時エラー:' + result.error.message);

}}) ;

}

// タイトルエリアを出力function writeTitle(inString) {

document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {

document.getElementById('resultArea').innerHTML = result;}

// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {

// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);

}// ■■■■■■■■■■■■■■■■■■■■■■

</script></head><body>

<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>

</body></html>

[A]Excel関数 [B]Office用アプリ①範囲選択したn行x2列

の値群を配列でゲット

Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix, コールバック関数);

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)5

0

[セルD2]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))

<!DOCTYPE html><html>

<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>

<script>// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;

Office.initialize = function(reason) {}window.onload = function() {

var btn = document.getElementById('executeButton');btn.onclick = function () {

buttonOnClick();}// タイトルエリアを出力writeTitle(title);

}

// ボタンクリック時のイベントハンドラfunction buttonOnClick() {

writeResult('実行中');

// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,

function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {

// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;

convertCounter = 0;executeConvertItem();

} else {writeResult('取得時エラー:' + result.error.message);

}}

) ;}

// 1件分変換を実行するfunction executeConvertItem() {

// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];

convertValue(originalValue, executeConvertItemCallback);}

// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {

// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);

convertCounter ++;if (convertCounter >= beforeMatrix.length) {

// 変換後の値を設定updateAfterValue();

} else {// 再帰的呼び出しexecuteConvertItem();

}}

// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {

Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {

if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');

} else {writeResult('セット時エラー:' + result.error.message);

}}) ;

}

// タイトルエリアを出力function writeTitle(inString) {

document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {

document.getElementById('resultArea').innerHTML = result;}

// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {

// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);

}// ■■■■■■■■■■■■■■■■■■■■■■

</script></head><body>

<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>

</body></html>

[A]Excel関数 [B]Office用アプリ①範囲選択したn行x2列

の値群を配列でゲット

Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix, コールバック関数);

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)5

1

[セルD2]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))

全角スペースより右の文字列を取得

<!DOCTYPE html><html>

<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>

<script>// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;

Office.initialize = function(reason) {}window.onload = function() {

var btn = document.getElementById('executeButton');btn.onclick = function () {

buttonOnClick();}// タイトルエリアを出力writeTitle(title);

}

// ボタンクリック時のイベントハンドラfunction buttonOnClick() {

writeResult('実行中');

// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,

function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {

// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;

convertCounter = 0;executeConvertItem();

} else {writeResult('取得時エラー:' + result.error.message);

}}

) ;}

// 1件分変換を実行するfunction executeConvertItem() {

// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];

convertValue(originalValue, executeConvertItemCallback);}

// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {

// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);

convertCounter ++;if (convertCounter >= beforeMatrix.length) {

// 変換後の値を設定updateAfterValue();

} else {// 再帰的呼び出しexecuteConvertItem();

}}

// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {

Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {

if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');

} else {writeResult('セット時エラー:' + result.error.message);

}}) ;

}

// タイトルエリアを出力function writeTitle(inString) {

document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {

document.getElementById('resultArea').innerHTML = result;}

// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {

// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);

}// ■■■■■■■■■■■■■■■■■■■■■■

</script></head><body>

<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>

</body></html>

[A]Excel関数 [B]Office用アプリ

②左列から名前を抽出(Array.split(“ “)[1])

③右列に名前をセット

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”太郎”],[“鈴木 花子” , ”花子”],[“斉藤 三郎” , ”三郎”]

]

for文で②③処理繰り返し。

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)5

2

[セルD2]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))

<!DOCTYPE html><html>

<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>

<script>// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;

Office.initialize = function(reason) {}window.onload = function() {

var btn = document.getElementById('executeButton');btn.onclick = function () {

buttonOnClick();}// タイトルエリアを出力writeTitle(title);

}

// ボタンクリック時のイベントハンドラfunction buttonOnClick() {

writeResult('実行中');

// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,

function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {

// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;

convertCounter = 0;executeConvertItem();

} else {writeResult('取得時エラー:' + result.error.message);

}}

) ;}

// 1件分変換を実行するfunction executeConvertItem() {

// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];

convertValue(originalValue, executeConvertItemCallback);}

// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {

// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);

convertCounter ++;if (convertCounter >= beforeMatrix.length) {

// 変換後の値を設定updateAfterValue();

} else {// 再帰的呼び出しexecuteConvertItem();

}}

// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {

Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {

if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');

} else {writeResult('セット時エラー:' + result.error.message);

}}) ;

}

// タイトルエリアを出力function writeTitle(inString) {

document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {

document.getElementById('resultArea').innerHTML = result;}

// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {

// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);

}// ■■■■■■■■■■■■■■■■■■■■■■

</script></head><body>

<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>

</body></html>

[A]Excel関数 [B]Office用アプリ④ 範囲選択したn行x2列に配列をセット

Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: “matrix” }, コールバック関数);

[[“山田 太郎” , ”太郎”],[“鈴木 花子” , ”花子”],[“斉藤 三郎” , ”三郎”]

]

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)5

3

[セルD2]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))

<!DOCTYPE html><html>

<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>

<script>// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;

Office.initialize = function(reason) {}window.onload = function() {

var btn = document.getElementById('executeButton');btn.onclick = function () {

buttonOnClick();}// タイトルエリアを出力writeTitle(title);

}

// ボタンクリック時のイベントハンドラfunction buttonOnClick() {

writeResult('実行中');

// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,

function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {

// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;

convertCounter = 0;executeConvertItem();

} else {writeResult('取得時エラー:' + result.error.message);

}}

) ;}

// 1件分変換を実行するfunction executeConvertItem() {

// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];

convertValue(originalValue, executeConvertItemCallback);}

// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {

// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);

convertCounter ++;if (convertCounter >= beforeMatrix.length) {

// 変換後の値を設定updateAfterValue();

} else {// 再帰的呼び出しexecuteConvertItem();

}}

// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {

Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {

if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');

} else {writeResult('セット時エラー:' + result.error.message);

}}) ;

}

// タイトルエリアを出力function writeTitle(inString) {

document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {

document.getElementById('resultArea').innerHTML = result;}

// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {

// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);

}// ■■■■■■■■■■■■■■■■■■■■■■

</script></head><body>

<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>

</body></html>

[A]Excel関数 [B]Office用アプリ④ 範囲選択したn行x2列に配列をセット

Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: “matrix” }, コールバック関数);

[[“山田 太郎” , ”太郎”],[“鈴木 花子” , ”花子”],[“斉藤 三郎” , ”三郎”]

]

太郎花子三郎

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)5

4

[セルD2]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))

<!DOCTYPE html><html>

<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>

<script>// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;

Office.initialize = function(reason) {}window.onload = function() {

var btn = document.getElementById('executeButton');btn.onclick = function () {

buttonOnClick();}// タイトルエリアを出力writeTitle(title);

}

// ボタンクリック時のイベントハンドラfunction buttonOnClick() {

writeResult('実行中');

// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,

function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {

// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;

convertCounter = 0;executeConvertItem();

} else {writeResult('取得時エラー:' + result.error.message);

}}

) ;}

// 1件分変換を実行するfunction executeConvertItem() {

// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];

convertValue(originalValue, executeConvertItemCallback);}

// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {

// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);

convertCounter ++;if (convertCounter >= beforeMatrix.length) {

// 変換後の値を設定updateAfterValue();

} else {// 再帰的呼び出しexecuteConvertItem();

}}

// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {

Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {

if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');

} else {writeResult('セット時エラー:' + result.error.message);

}}) ;

}

// タイトルエリアを出力function writeTitle(inString) {

document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {

document.getElementById('resultArea').innerHTML = result;}

// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {

// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);

}// ■■■■■■■■■■■■■■■■■■■■■■

</script></head><body>

<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>

</body></html>

[A]Excel関数 [B]Office用アプリ④ 範囲選択したn行x2列に配列をセット

Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: “matrix” }, コールバック関数);

[[“山田 太郎” , ”太郎”],[“鈴木 花子” , ”花子”],[“斉藤 三郎” , ”三郎”]

]

太郎花子三郎

DE

MO

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)5

5

[A]Excel関数①範囲選択したn行x2列

の値群を配列でゲット

④ 範囲選択したn行x2列に配列をセット

②左列から名前を抽出

for文で②③処理繰り返し

③右列に名前をセット

[セルD2に入力] =RIGHT(C2,LEN(C2)-FIND(" ",C2,1))

全角スペースより右の文字列を取得

[B]Office用アプリ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)5

6

[A] Excel関数 [B]Office用アプリ

○(1行で終わり) 1から作る △(コード量多い+Webサーバ必要)

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)5

7

[A] Excel関数 [B]Office用アプリ

○(1行で終わり) 1から作る △(コード量多い+Webサーバ必要)

◎(変更に追従) 誰かが作ったものを使う

○(変更に追従しない

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)5

8

[A] Excel関数 [B]Office用アプリ

○(1行で終わり) 1から作る △(コード量多い+Webサーバ必要)

◎(変更に追従) 誰かが作ったものを使う

○(変更に追従しない

田崎 今日子 今日子

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)5

9

[A] Excel関数 [B]Office用アプリ

○(1行で終わり) 1から作る △(コード量多い+Webサーバ必要)

◎(変更に追従) 誰かが作ったものを使う

○(変更に追従しない

・右記以外は[A]Excel関数使ったほうがよい。

ツカイドコロ ・あるOffice用アプリの一部の機能・Wordで使う

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)6

0

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)6

1

※今日のOffice用アプリ動かしてみたい

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)6

2

[A]VisualStudio 2013(有償版)を使う

(Professional以上)

[B]無料で頑張る

※今日のOffice用アプリ動かしてみたい

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)6

3

[A]VisualStudio 2013(有償版)を使う

[B]無料で頑張る

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)6

4

[A]VisualStudio 2013(有償版)を使う

[B]無料で頑張る

マニフェストXML

html

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)6

5

[A]VisualStudio 2013(有償版)を使う

[B]無料で頑張る

1. 今日の提供ソースのうち、htmlのみ用意

マニフェストXML

html

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)6

6

[A]VisualStudio 2013(有償版)を使う

[B]無料で頑張る

2. Visual Studio 2013 とUpdate3をインストール

• ※参考Visual Studio 2013 90 日間の無償評価版

http://www.visualstudio.com/ja-jp/downloads/download-visual-studio-vs#DownloadFamilies_1• Visual Studio 2013 Update3http://www.microsoft.com/ja-jp/download/details.aspx?id=43721

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)6

7

[B]無料で頑張る

3. Visual Studio 2013を起動。4. 新しいプロジェクト>Office 用アプリを選択

[A]VisualStudio 2013(有償版)を使う

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)6

8

[B]無料で頑張る

5. 「次へ」「次へ」

[A]VisualStudio 2013(有償版)を使う

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)6

9

[B]無料で頑張る

5. 「次へ」「次へ」

[A]VisualStudio 2013(有償版)を使う

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)7

0

[B]無料で頑張る[A]VisualStudio 2013(有償版)を使う

6. App¥Home¥Home.htmlを開き、今日のhtmlソースで全行差し替え。

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)7

1

[B]無料で頑張る[A]VisualStudio 2013(有償版)を使う

6. App¥Home¥Home.htmlを開き、今日のhtmlソースで全行差し替え。

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)7

2

[B]無料で頑張る[A]VisualStudio 2013(有償版)を使う

7. 開始ボタン(F5キー)クリック

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)7

3

[B]無料で頑張る[A]VisualStudio 2013(有償版)を使う

8. セキュリティの警告は「はい」押下

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)7

4

[B]無料で頑張る[A]VisualStudio 2013(有償版)を使う

9. 動いた~

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)7

5

[B]無料で頑張る[A]VisualStudio 2013(有償版)を使う

9. 動いた~

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)7

6

[B]無料で頑張る[A]VisualStudio 2013(有償版)を使う

9. 動いた~

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)7

7

[A]VisualStudio 2013(有償版)を使う

[B]無料で頑張る

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)7

8

[A]VisualStudio 2013(有償版)を使う

マニフェストXML

html

1. 今日の提供ソース2つ両方

[B]無料で頑張る

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)7

9

[A]VisualStudio 2013(有償版)を使う

マニフェストXML

html

1. 今日の提供ソース2つ両方

[B]無料で頑張る

日経ソフトウエア: Office用アプリ開発入門第2回 はじめてのOffice用アプリ(きぬあささん著)http://itpro.nikkeibp.co.jp/article/COLUMN/20140313/543266/

2. 下のURLを参考に、設定をがんばる。

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)8

0

[A]VisualStudio 2013(有償版)を使う

マニフェストXML

html

1. 今日の提供ソース2つ両方と、共有フォルダ、Webサーバを用意。

Webサーバ (例:http://localhost/)

[B]無料で頑張る

共有フォルダ (例:¥¥devpc¥apps)

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)8

1

[A]VisualStudio 2013(有償版)を使う

マニフェストXML

html

2. 二つのファイルを下記のように配置。

共有フォルダ

Webサーバ

[B]無料で頑張る

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)8

2

[A]VisualStudio 2013(有償版)を使う

3. Excelの設定でマニフェストXMLを関連付ける

[B]無料で頑張る

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)8

3

[A]VisualStudio 2013(有償版)を使う

4. アプリインストール

[B]無料で頑張る

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)8

4

[A]VisualStudio 2013(有償版)を使う

4. アプリインストール

[B]無料で頑張る

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)8

5

[A]VisualStudio 2013(有償版)を使う

5. 動いた~

[B]無料で頑張る

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)8

6

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)8

7

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)8

8

300件の顧客データに、●●●列を追加して。

上司

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)8

9

300件の顧客データに、年齢列を追加して。

上司

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)9

0

生年月日→年齢

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)9

1

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)9

2

29

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)9

3

29

シンキングタイム20秒

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)9

4

[A]Excel関数 [B]Office用アプリ

29

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)9

5

[A]Excel関数 [B]Office用アプリ

誕生日から今日までの期間を取得

誕生日から今日までの期間を取得

29

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)9

6

[A]Excel関数 [B]Office用アプリ

[セルF2]=DATEDIF (E2, TODAY(), "Y")

誕生日から今日までの期間を取得

誕生日から今日までの期間を取得

29

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)9

7

[A]Excel関数 [B]Office用アプリ

[セルF2]=DATEDIF (E2, TODAY(), "Y")

誕生日から今日までの期間を取得

誕生日から今日までの期間を取得

29

DE

MO

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)9

8

[A]Excel関数 [B]Office用アプリ

[セルF2]=DATEDIF (E2, TODAY(), "Y")

誕生日から今日までの期間を取得

誕生日から今日までの期間を取得

29

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

①範囲選択したn行x2列の値群を配列でゲット

Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix, コールバック関数);

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)9

9

[A]Excel関数 [B]Office用アプリ

[セルF2]=DATEDIF (E2, TODAY(), "Y")

誕生日から今日までの期間を取得

誕生日から今日までの期間を取得

29

②左列から名前を抽出(Array.split(“ “)[1])

③右列に名前をセット

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”太郎”],[“鈴木 花子” , ”花子”],[“斉藤 三郎” , ”三郎”]

]

for文で②③処理繰り返し。

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

00

[A]Excel関数 [B]Office用アプリ

[セルF2]=DATEDIF (E2, TODAY(), "Y")

誕生日から今日までの期間を取得

誕生日から今日までの期間を取得

29

[[“1985/9/26” , ””],[“1944/6/24” , ””],[“2007/7/12” , ””]

]

[[“1985/9/26” , ”29”],[“1944/6/24” , ”70”],[“2007/7/12” , ”7”]

]

②左列から年齢を計算

③右列に年齢をセット

for文で②③処理繰り返し。①範囲選択を配列でゲット

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

01

[A]Excel関数 [B]Office用アプリ

[セルF2]=DATEDIF (E2, TODAY(), "Y")

誕生日から今日までの期間を取得

誕生日から今日までの期間を取得

29

[[“1985/9/26” , ””],[“1944/6/24” , ””],[“2007/7/12” , ””]

]

②左列から年齢を計算

③右列に年齢をセット

for文で②③処理繰り返し。①範囲選択を配列でゲット

[[“1985/9/26” , ”29”],[“1944/6/24” , ”70”],[“2007/7/12” , ”7”]

]

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

02

[A]Excel関数 [B]Office用アプリ

[セルF2]=DATEDIF (E2, TODAY(), "Y")

誕生日から今日までの期間を取得

誕生日から今日までの期間を取得

29

②左列から年齢を計算

③右列に年齢をセット

for文で②③処理繰り返し。①範囲選択を配列でゲット

[[31316 , ””],[16247 , ””],[39275 , ””]

]

[[“1985/9/26” , ”29”],[“1944/6/24” , ”70”],[“2007/7/12” , ”7”]

]

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

03

[A]Excel関数 [B]Office用アプリ

[セルF2]=DATEDIF (E2, TODAY(), "Y")

誕生日から今日までの期間を取得

誕生日から今日までの期間を取得

29

[[31316 , ””],[16247 , ””],[39275 , ””]

]

②左列から年齢を計算

③右列に年齢をセット

for文で②③処理繰り返し。1900/1/1からの経過日数

[[“1985/9/26” , ”29”],[“1944/6/24” , ”70”],[“2007/7/12” , ”7”]

]

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

04

[A]Excel関数 [B]Office用アプリ

[セルF2]=DATEDIF (E2, TODAY(), "Y")

誕生日から今日までの期間を取得

誕生日から今日までの期間を取得

28

[[31316 , ””],[16247 , ””],[39275 , ””]

]

[[“1985/9/26” , ”28”],[“1980/1/5” , ”70”],[“1970/11/15” , ”7”]

]

②左列から年齢を計算

③右列に年齢をセット

for文で②③処理繰り返し。

書式設定

日付→数値

1900/1/1からの経過日数

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

05

[A]Excel関数 [B]Office用アプリ

[セルF2]=DATEDIF (E2, TODAY(), "Y")

誕生日から今日までの期間を取得

誕生日から今日までの期間を取得

29

[[31316 , ””],[16247 , ””],[39275 , ””]

]

1900/1/1からの経過日数

[[“1985/9/26” , ”29”],[“1944/6/24” , ”70”],[“2007/7/12” , ”7”]

]

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

06

[A]Excel関数 [B]Office用アプリ

[セルF2]=DATEDIF (E2, TODAY(), "Y")

誕生日から今日までの期間を取得

誕生日から今日までの期間を取得

29

[[31316 , ””],[16247 , ””],[39275 , ””]

]

②左列(経過日数)を日付に変換

④右列に年齢をセット

for文で②③④処理繰り返し。1900/1/1からの

経過日数

[[“1985/9/26” , ”29”],[“1944/6/24” , ”70”],[“2007/7/12” , ”7”]

]

③日付から年齢を計算

[[“1985/9/26” , ””],[“1944/6/24” , ””],[“2007/7/12” , ””]

]

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

07

[A]Excel関数 [B]Office用アプリ

[セルF2]=DATEDIF (E2, TODAY() ,"Y")

第1引数から第2引数までの

期間を返却

28var theDate = covertSerialValueToDate (31316);

// (左列)をDate型に変換function covertSerialValueToDate(inDateTime) {

var excelDateTimeSerialValue = inDateTime;var oneDayInMilliseconds = 86400000;var excelOriginDateInMilliseconds = new Date(1899, 11, 31).getTime();var val1 = Math.floor(excelDateTimeSerialValue); // Excelシリアル値の整数

部分var val2 = excelDateTimeSerialValue - val1; // Excelシリアル値の小数部分var day = oneDayInMilliseconds * (val1 - 1);var time = oneDayInMilliseconds * val2;var dateTime = day + time + excelOriginDateInMilliseconds;var result = new Date();result.setTime(dateTime);return result;

}※参考:http://origin809.wordpress.com/2013/12/10/first-step-of-apps-for-office/

②左列(経過日数)を日付に変換 31316→ “1985/9/26”

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

08

[A]Excel関数 [B]Office用アプリ

[セルF2]=DATEDIF (E2, TODAY() ,"Y")

第1引数から第2引数までの

期間を返却

28// 今日からの経過日数をDate型に変換

var diffDate = new Date(new Date() – [生年月日のDate型]);

// 年齢を算出var age = diffDate.getUTCFullYear() - 1970;

※参考:Javascriptで誕生日から現在の年齢を算出http://qiita.com/n0bisuke/items/dd537bd4cbe9ab501ce8

③日付から年齢を計算

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

09

[A]Excel関数 [B]Office用アプリ

[セルF2]=DATEDIF (E2, TODAY() ,"Y")

第1引数から第2引数までの

期間を返却

28// 今日からの経過日数をDate型に変換

var diffDate = new Date(new Date() – [生年月日のDate型]);

// 年齢を算出var age = diffDate.getUTCFullYear() - 1970;

※参考:Javascriptで誕生日から現在の年齢を算出http://qiita.com/n0bisuke/items/dd537bd4cbe9ab501ce8

③日付から年齢を計算 DE

MO

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

10

[A]Excel関数 [B]Office用アプリ

[セルF2]=DATEDIF (E2, TODAY(), "Y")

①範囲選択したn行x2列の値群を配列でゲット

⑤ 範囲選択したn行x2列に配列をセット

②左列を日付に変換

for文で②③④処理繰り返し

④右列に年齢をセット

③日付から年齢を計算

誕生日から今日までの期間を取得

29

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

11

[A] Excel関数 [B]Office用アプリ

○(1行で終わり) 1から作る △(コード量多い+Webサーバ必要)

◎(変更に追従) 誰かが作ったものを使う

○(変更に追従しない

・右記以外は[A]Excel関数使ったほうがよい。

ツカイドコロ ・あるOffice用アプリの一部の機能・Wordで使う

29

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

12

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

13

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

14

300件の顧客データに、●●●列を追加して。

上司

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

15

300件の顧客データに、氏名のふりがな列を追加して。

上司

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

16

300件の顧客データに、氏名のふりがな列を追加して。

上司

ひらがなで。

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

17

300件の顧客データに、氏名のふりがな列を追加して。

上司

<前提>姓と名が

全角スペースで区切られている

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

18

氏名(フルネーム)→ふりがな

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

19

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

20

たざき がく

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

21

たざき がく

シンキングタイム20秒

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

22

たざき がく

[A]Excel関数 [B]Office用アプリ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

23

たざき がく

[A]Excel関数 [B]Office用アプリ

できるの?ネットに問合せすれば

できるかも?

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

24

たざき がく

[A]Excel関数 [B]Office用アプリ

ふりがな取得関数を使う

[セルD2]=PHONETIC (C2)

ネットに問合せすればできるかも?

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

25

たざき がく

[A]Excel関数 [B]Office用アプリ

ふりがな取得関数を使う

[セルD2]=PHONETIC (C2)

・“ふりがなの設定”で種類を[ひらがな]にする。

ネットに問合せすればできるかも?

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

26

たざき がく

[A]Excel関数 [B]Office用アプリ

ふりがな取得関数を使う

ネットに問合せすればできるかも?

[セルD2]=PHONETIC (C2)

・“ふりがなの設定”で種類を[ひらがな]にする。

1. 氏名のセルを選択

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

27

たざき がく

[A]Excel関数 [B]Office用アプリ

ふりがな取得関数を使う

ネットに問合せすればできるかも?

[セルD2]=PHONETIC (C2)

・“ふりがなの設定”で種類を[ひらがな]にする。

2. ふりがなの設定をクリック

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

28

たざき がく

[A]Excel関数 [B]Office用アプリ

ふりがな取得関数を使う

ネットに問合せすればできるかも?

[セルD2]=PHONETIC (C2)

・“ふりがなの設定”で種類を[ひらがな]にする。

3. 種類で[ひらがな]を選択。

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

29

たざき がく

[A]Excel関数 [B]Office用アプリ

ふりがな取得関数を使う

ネットに問合せすればできるかも?

[セルD2]=PHONETIC (C2)

・“ふりがなの設定”で種類を[ひらがな]にする。

4. ひらがなになる

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

30

たざき がく

[A]Excel関数 [B]Office用アプリ

ふりがな取得関数を使う

[セルD2]=PHONETIC (C2)

・“ふりがなの設定”で種類を[ひらがな]にする。

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

31

たざき がく

[A]Excel関数 [B]Office用アプリ

ふりがな取得関数を使う

[セルD2]=PHONETIC (C2)

・“ふりがなの設定”で種類を[ひらがな]にする。

★弱点あり。

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

32

たざき がく

[A]Excel関数 [B]Office用アプリ

ふりがな取得関数を使う

[セルD2]=PHONETIC (C2)

・“ふりがなの設定”で種類を[ひらがな]にする。

★弱点あり。

・フリガナ情報を持たないExcelファイルには使えません。

(例:CSV)

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

33

たざき がく

[A]Excel関数 [B]Office用アプリ

ふりがな取得関数を使う

[セルD2]=PHONETIC (C2)

・“ふりがなの設定”で種類を[ひらがな]にする。

★弱点あり。

・フリガナ情報を持たないExcelファイルには使えません。

(例:CSV)

DE

MO

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

34

たざき がく

[A]Excel関数 [B]Office用アプリ

ふりがな取得関数を使う

[セルD2]=PHONETIC (C2)

・“ふりがなの設定”で種類を[ひらがな]にする。

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

35

たざき がく

[A]Excel関数 [B]Office用アプリ

ふりがな取得関数を使う

[セルD2]=PHONETIC (C2)

・“ふりがなの設定”で種類を[ひらがな]にする。

ネットに問合せすればできるかも?

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

36

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

①範囲選択したn行x2列の値群を配列でゲット

Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix, コールバック関数);

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

37

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

38

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

Yahooルビ振りAPI

http://developer.yahoo.co.jp/webapi/jlp/furigana/v1/furigana.html

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

39

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

Yahooルビ振りAPI

① Yahoo! IDを取得② アプリケーションIDを取得③ URLをよぶ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

40

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

Yahooルビ振りAPI

② アプリケーションIDを取得

クライアントサイド

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

41

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

Yahooルビ振りAPI

② アプリケーションIDを取得

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

42

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

Yahooルビ振りAPI

③ URLをよぶhttp://jlp.yahooapis.jp/FuriganaService/V1/furigana?appid=[②のアプリケーションID]&sentence=[山田 太郎をURLエンコードした文字列]

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

43

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

Yahooルビ振りAPI

③ URLをよぶhttp://jlp.yahooapis.jp/FuriganaService/V1/furigana?appid=[②のアプリケーションID]&sentence=[山田 太郎をURLエンコードした文字列]

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

44

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

45

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

46

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

データ取得できないエラー

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

47

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

データ取得できないエラー

XML

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

48

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

データ取得できないエラー

XML

クロスドメインエラー

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

49

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

データ取得できないエラー

XML

クロスドメインエラー

JSONPだったらよかったのに

(クロスドメインエラーにならない)

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

50

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

51

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

YQL JSONP

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

52

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

YQL JSONP

XMLをJSONPに変換してくれる

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

53

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

YQL JSONP

XML, HTML, RSS, CSVなどをJSONPに変換してくれる

YQL (Yahoo! Query Language) : 米国のYahoo提供

https://developer.yahoo.com/yql/

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

54

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

YQL JSONP

XML, HTML, RSS, CSVなどをJSONPに変換してくれる

YQL (Yahoo! Query Language) : 米国のYahoo提供

XML, HTML, RSS, CSVなどをJSONPに

変換できる

◇参考URLhttp://hail2u.net/blog/webdesign/scribble-something.htmlhttp://blog.yo41sawada.jp/weblog/tips/yql_cross-domain/

https://developer.yahoo.com/yql/

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

55

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

YQL JSONP

XML, HTML, RSS, CSVなどをJSONPに変換してくれる

YQL (Yahoo! Query Language) : 米国のYahoo提供

https://developer.yahoo.com/yql/

$.getJSON("http://query.yahooapis.com/v1/public/yql?callback=?", {

q: "SELECT * FROM yahoojp.jlp.furigana.furiganaWHERE appid='" + appid + "'

and sentence='" + beforeValue + "'",format: "json",env: "store://datatables.org/alltableswithkeys"

}, function (json) {// 後処理

});

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

56

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

YQL JSONP

XMLをJSONPに変換してくれる

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

57

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

YQL JSONP

XMLをJSONPに変換してくれる

★弱点あり。

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

58

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

YQL JSONP

XMLをJSONPに変換してくれる

★弱点あり。変換率100%ではない

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

59

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]

]

Yahooルビ振り

API

YQL JSONP

XMLをJSONPに変換してくれる

★弱点あり。変換率100%ではない

DE

MO

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

60

たざき がく

[A]Excel関数 [B]Office用アプリ

ふりがな取得関数を使う

Yahooルビ振りAPIとYQLとJSONPを使う

[セルD2]=PHONETIC (C2)

・“ふりがなの設定”で種類を[ひらがな]にする。

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

61

[A] Excel関数 [B]Office用アプリ

・Excelファイルがふりがな情報を持っている場合

ツカイドコロ ・Excelファイルがふりがな情報を持っていない場合

たざき がく

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

62

おまけ自選:難読氏名5選

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

63

四月一日 君尋(XXXHOLiC)

わたぬき きみひろ

鹿目 まどか(魔法少女まどか☆マギカ)

かなめ まどか

初春 飾利(とある科学の超電磁砲)

ういはる かざり

西谷 夕(ハイキュー!!)

にしのや ゆう

忍野 忍(<物語>シリーズ)

おしの しのぶ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

64

四月一日 君尋(XXXHOLiC)

わたぬき きみひろ

鹿目 まどか(魔法少女まどか☆マギカ)

かなめ まどか

初春 飾利(とある科学の超電磁砲)

ういはる かざり

西谷 夕(ハイキュー!!)

にしのや ゆう

忍野 忍(<物語>シリーズ)

おしの しのぶ

ふりがなをYahooに

問い合せてみた

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

65

四月一日 君尋(XXXHOLiC)

わたぬき きみひろ

鹿目 まどか(魔法少女まどか☆マギカ)

かなめ まどか

初春 飾利(とある科学の超電磁砲)

ういはる かざり

西谷 夕(ハイキュー!!)

にしのや ゆう

忍野 忍(<物語>シリーズ)

おしの しのぶ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

66

四月一日 君尋(XXXHOLiC)

わたぬき きみひろおたぬき きみひろ

鹿目 まどか(魔法少女まどか☆マギカ)

かなめ まどかかめ まどか

初春 飾利(とある科学の超電磁砲)

ういはる かざりしょしゅんかざりとし

西谷 夕(ハイキュー!!)

にしのや ゆうにしや ゆう

忍野 忍(<物語>シリーズ)

おしの しのぶおしの にん

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

67

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

68

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

69

300件の顧客データに、●●●列を追加して。

上司

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

70

300件の顧客データに、名前列を追加して。

上司

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

71

300件の顧客データに、名前列を追加して。

上司

<前提>姓と名は

くっついている

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

72

氏名(フルネーム)→名前抽出 [その2]

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

73

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

74

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

75

シンキングタイム20秒

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

76

[A]Excel関数 [B]Office用アプリ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

77

[A]Excel関数 [B]Office用アプリ

田崎 岳 田崎 岳

全角スペースより右の文字列を取得

全角スペースで分割し文字列の2番めを取る

① ②

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

78

[A]Excel関数 [B]Office用アプリ

田崎 岳 田崎 岳

全角スペースより右の文字列を取得

全角スペースで分割し文字列の2番めを取る

① ②

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

79

[A]Excel関数 [B]Office用アプリ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

80

[A]Excel関数 [B]Office用アプリ

林?伊藤?

佐々木?

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

81

[A]Excel関数 [B]Office用アプリ

\(T_T)/お手上げ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

82

[A]Excel関数 [B]Office用アプリ

\(T_T)/お手上げ Yahooルビ振りAPIと

YQLとJSONPを使う

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

83

たざき がく

[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]

]

[[“山田太郎” , ””],[“鈴木花子” , ””],[“斉藤三郎” , ””]

]

[[“山田太郎” , “太郎”],[“鈴木花子” , ”花子”],[“斉藤三郎” , ”三郎”]

]

Yahooルビ振り

API

YQL JSONP

XMLをJSONPに変換してくれる

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

84

[A]Excel関数 [B]Office用アプリ

\(T_T)/お手上げ Yahooルビ振りAPIと

YQLとJSONPを使う

DE

MO

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

85

[A] Excel関数 [B]Office用アプリ

\(T_T)/

お手上げ

\(^o^)/

バンザイ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

86

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

87

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

88

300件の顧客データに、●●●列を追加して。

上司

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

89

300件の顧客データに、郵便番号列を追加して。

上司

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

90

住所→郵便番号

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

91

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

92

954-0166

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

93

954-0166

シンキングタイム20秒

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

94

954-0166

[A]??? [B]Office用アプリ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

95

954-0166

[A]??? [B]Office用アプリ

なにかのWebAPIに問い合わせる

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

96

954-0166

[A]??? [B]Office用アプリ

GoogleのAPIに聞く

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

97

954-0166

[A]??? [B]Office用アプリ

GoogleのAPIに聞く

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

98

954-0166

[A]??? [B]Office用アプリ

GoogleのAPIに聞く

※googleの変換API (ajaxzip3)[○] 郵便番号→住所[X] 住所→郵便番号

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)1

99

954-0166

[A]??? [B]Office用アプリ

住所→郵便番号変換WebAPIに問い合わせ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

00

954-0166

[A]??? [B]Office用アプリ

むずかしそう。。

住所→郵便番号変換WebAPIに問い合わせ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

01

954-0166

※住所→郵便番号をサポートしているWebAPI

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

02

954-0166

※住所→郵便番号をサポートしているWebAPI・ぽすたん (http://www.postan.jp)・IW3 PROJECT (http://project.iw3.org/zip_search_x0401)・グルーブテクノロジーWebサービス

(http://groovetechnology.co.jp/webservice/)

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

03

954-0166

※住所→郵便番号をサポートしているWebAPI・ぽすたん (http://www.postan.jp)・IW3 PROJECT (http://project.iw3.org/zip_search_x0401)・グルーブテクノロジーWebサービス

(http://groovetechnology.co.jp/webservice/)

新潟県長岡市

郵便番号検索API

たくさん(50件以上)

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

04

954-0166

※住所→郵便番号をサポートしているWebAPI・ぽすたん (http://www.postan.jp)・IW3 PROJECT (http://project.iw3.org/zip_search_x0401)・グルーブテクノロジーWebサービス

(http://groovetechnology.co.jp/webservice/)

郵便番号検索API

9540166(1件)

新潟県長岡市海老島勇次新田

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

05

954-0166

※住所→郵便番号をサポートしているWebAPI・ぽすたん (http://www.postan.jp)・IW3 PROJECT (http://project.iw3.org/zip_search_x0401)・グルーブテクノロジーWebサービス

(http://groovetechnology.co.jp/webservice/)

郵便番号検索API

0件

新潟県長岡市海老島勇次新田115-10

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

06

954-0166

※住所→郵便番号をサポートしているWebAPI・ぽすたん (http://www.postan.jp)・IW3 PROJECT (http://project.iw3.org/zip_search_x0401)・グルーブテクノロジーWebサービス

(http://groovetechnology.co.jp/webservice/)

郵便番号検索API

0件

新潟県長岡市海老島勇次新田115-10

問い合わせ文字列を投げ過ぎたらNG

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

07

954-0166

※住所→郵便番号をサポートしているWebAPI・ぽすたん (http://www.postan.jp)・IW3 PROJECT (http://project.iw3.org/zip_search_x0401)・グルーブテクノロジーWebサービス

(http://groovetechnology.co.jp/webservice/)

新潟県長岡市海老島勇次新田115-10

〒9540166

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

08

954-0166

※住所→郵便番号をサポートしているWebAPI・ぽすたん (http://www.postan.jp)・IW3 PROJECT (http://project.iw3.org/zip_search_x0401)・グルーブテクノロジーWebサービス

(http://groovetechnology.co.jp/webservice/)

新潟県長岡市海老島勇次新田115-10

〒9540166

全角数字で判定する?

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

09

954-0166

※住所→郵便番号をサポートしているWebAPI・ぽすたん (http://www.postan.jp)・IW3 PROJECT (http://project.iw3.org/zip_search_x0401)・グルーブテクノロジーWebサービス

(http://groovetechnology.co.jp/webservice/)

新潟県長岡市海老島勇次新田115-10

北海道旭川市10条通19丁目34-23

〒9540166

〒0788220

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

10

954-0166

[A]??? [B]Office用アプリ

むずかしそう。。

住所→郵便番号変換WebAPIに問い合わせ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

11

954-0166

[A]Excelアドイン [B]Office用アプリ

むずかしそう。。

郵便番号変換ウィザードを使う

住所→郵便番号変換WebAPIに問い合わせ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

12

954-0166

[A]Excelアドイン [B]Office用アプリ

むずかしそう。。

郵便番号変換ウィザードを使う

住所→郵便番号変換WebAPIに問い合わせ

<必要なこと>1) アドインダウンロード2) Excelに組み込む3) 使う

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

13

954-0166

Excel アドイン:郵便番号変換ウィザード@CodePlex

http://excelzipcode7japan.codeplex.com/

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

14

954-0166

1. [download]をクリックして、アドインをダウンロードする

http://excelzipcode7japan.codeplex.com/

導入編

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

15

954-0166

2. ファイルのプロパティを開き、[ブロックの解除]をクリック

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

16

954-0166

3. Excelのオプション>アドイン>設定をクリック

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

17

954-0166

4. 参照をクリック

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

18

954-0166

5. アドインファイルを選択してOKクリック

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

19

954-0166

6. OKをクリック

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

20

954-0166

1. アドイン>ウィザード>郵便番号変換 を選択

使用編

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

21

954-0166

2. 住所から郵便番号を生成する を選択して[次へ]

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

22

954-0166

3. 住所データの範囲と、郵便番号を出力したい範囲を設定

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

23

954-0166

4. 書式は[文字列]を選択して次へ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

24

954-0166

5. [完了]をクリック

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

25

954-0166

6. 動いた~

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

26

954-0166

6. 動いた~D

EM

O

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

27

954-0166

[A]Excelアドイン [B]Office用アプリ

むずかしそう。。

郵便番号変換ウィザードを使う

住所→郵便番号変換WebAPIに問い合わせ

<必要なこと>1) アドインダウンロード2) Excelに組み込む3) 使う

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

28

954-0166

[A] Excelアドイン [B]Office用アプリ

△(導入ちょっと大変 1から作る

○(ウィザード形式でできる)

誰かが作ったものを使う

・この方法1択ではないか?

ツカイドコロ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

29

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

30

まとめ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

31

まとめ

なんでもかんでもExcel関数

なんでもかんでもOffice用アプリ

なんでもかんでもVBA

なんでもかんでもVSTO

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

32

まとめ

なんでもかんでもExcel関数

なんでもかんでもOffice用アプリ

なんでもかんでもVBA

なんでもかんでもVSTO

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

33

まとめ

なんでもかんでもExcel関数

なんでもかんでもOffice用アプリ

なんでもかんでもVBA

なんでもかんでもVSTO

問題に応じて最適な手法を使いましょう

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

34

まとめOffice用アプリ

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

35

まとめOffice用アプリ

WebサービスA

WebサービスB

WebサービスC

WebサービスD

WebサービスE

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

36

まとめOffice用アプリ

WebサービスA

WebサービスB

WebサービスC

WebサービスD

WebサービスE

MashUp

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

37

まとめOffice用アプリ

WebサービスA

WebサービスB

WebサービスC

WebサービスD

WebサービスE

MashUp

引き出しがあればあるほどできることが

増える

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

38

まとめOffice用アプリ

WebサービスA

WebサービスB

WebサービスC

WebサービスD

WebサービスE

MashUp

引き出しがあればあるほどできることが

増える

情報の引き出しを

増やしましょう

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

39

まとめOffice用アプリ

WebサービスA

WebサービスB

WebサービスC

WebサービスD

WebサービスE

MashUp

引き出しがあればあるほどできることが

増える

情報の引き出しを

増やしましょう

例)日本の全エンジニアに捧ぐ!現在公開されているAPI一覧【2013年版】http://www.find-job.net/startup/api-2013

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

40

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

41

サンプルデータ

Office用アプリRandom Data Generator (きぬあささん作)

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

42

今日のスライド

今夜以降「slideshare ta2c」でネットで検索

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

43

データ

http://1drv.ms/Zho851

サンプルアプリ

<お約束>サンプルに関して、万一ユーザーまたは第三者が何らかの損害を被った場合においても、一切の責任を負うことは出来ませんのでご了承ください。

#A

pp

sForO

ffice詰

Exce

l/くら

もと

たつ

し(@

ta2

c)2

44#AppsForOffice

詰ExcelOffice用アプリの

ツカイドコロ

top related