AppleサポートAppおよびYouTubeチャンネルのお知らせ

* iOS向けAppleサポートAppのバージョン5.6.1が公開されました。

YouTube - Apple Japanチャンネルで有用なヒントや使い方を配信中です。

コミュニティでの投票方法と通知設定

コミュニティでの投票方法や通知の設定方法に関する記事を公開しました。

Apple Account(Apple ID)の不正利用を確認する方法

Apple Accountに関するよくある質問についてはこちらのページを、また不正利用を確認する方法についてはこちらのドキュメントをご参照ください。

しばらく返答が寄せられていないようです。 再度ディスカッションを開始するには、新たに質問してください。

オートメーターを使って文字変換はできないものでしょうか?

法律関係の勉強をしています。iPadで法令を使えたら便利だと思っていますが、私が今持っている文字データ(テキストデーター)には条文の番号がすべて漢数字(例:第百五十四条)で記載されています。これをすべて(約千条ほどあります)アラビア数字に変換したいのですが、オートメーターを使ってできないものでしょうか?オートメーターについてはまったくの初心者なのですが…。なにかに使えるかなと思って、手元には漢数字(第一条から第千条)とアラビア数字(第1条から第1000条)のエクセルデータでのリストもあります。

使っているマックは10.6です。

どなたかお知恵を貸してください。よろしくお願いします。

Mac mini, Mac OS X (10.6.6)

投稿日 2011/04/08 19:21

返信
返信: 52

2011/04/11 00:58 ありんこ への返信

ありんこ さんによる書き込み:


ウィンドウズ用Office2010では使えるものなのでしょうか?

Excel2000の参考書を見ながらつくったので、おそらく動くと思われます。ただ、ファイルパスというのがWindowsとMacでは違いますのでその部分は書き換える必要があります。それと私がWindowsに詳しくないので、Windows版Excelでの使い方が説明できるかはグレーゾーンです。Excel2008(Mac版)では動かないとのことです。(VBAが未搭載とのこと。)


それで、肝心の使い方ですが、Excel2004では下記の方法で使います。(正しい使い方かどうかはわかりません。)

1.Excelを起動。ツールメニュー「マクロ」「新しいマクロの記録...」を実行。(何か適当にExcelを操作してマクロを記録してください。アクティブセルを移動や、文字の入力とか。)マクロの記録を終了。


2.ツールメニュー「マクロ」「Visual Basic Editor」を起動。「1.」で作成したマクロを表示。(Macro1とかいう名前のはずです。Module1に記録されているはずです。)そこに、私が提示したVBAのコードをコピー。最初の行のSubからEnd Subまで、記録されていたヤツを上書きしてしまってください。


3.コード内の"Users:niki:Desktop:houbun.doc"を自分の環境に合わせて変更。最後のhoubun.docもご自分の法令集のファイル名に合わせる必要があります。あらかじめWordで適当な名前に変えておくのも手です。なお、おそらくWordで開くなら.txtで構いません。Users:niki:Desktop:houbun.dochは

ファイルへのフルパスといわれるものです。パスってなに。(超初心者向け)を参考にしてください。通常OS Xでは「/」が区切りに使用されますが、Mac版Excelでは「:」が使用されます。それと、フルパスなら:Users:niki:Desktop:houbun.doc

となるはずなのですが、Excelでは先頭の「:」は不要なようです。Users:niki:Desktop:houbun.doctとなります。Windowsでは区切りに「\」(バックスラッシュ。割り算の向きが反対のヤツです。)

作り方が不明の場合はネットでwdObj.Documents.Openで検索すると、たくさんヒットします。


4.For i = 1 To 5の部分の「5」は第一条から第一千条まで処理するなら「5」を「1000」に変えてください。ただ、いきなり1000にして動かないと、困るので最初は5とかでテストしてみてください。


5.Wordの文章は検索さえできれば、縦書きでも横書きでもよいはずです。Excelのリストは1000行2列で作成されている前提でマクロをつくりました。

第一条 第1条

第二条 第2条

と並んでいる必要があります。漢数字が1列目でアラビア数字が二列目です。もし数字だけの対照表の場合は、="第"&[セルの相対参照]&"上"として第x条という方に変換すれば、良いかと思います。ただし、法令集の方が「第 一 条」とかだと検索で引っかからなくなります。


6.ツールメニュー「マクロ」「マクロ...」で実行してください。


重要な注意事項としては、対照表や法令集のオリジナルに対して、このマクロを実行してはいけません。必ずオリジナルを保管しておいてください。予期せぬ誤動作で、データを壊す可能性がないとは言えないので。

2011/04/11 01:50 ありんこ への返信

書き忘れがありました。法文の中に同じ第x条が何回か出てくることがあると思うのですが、私の提示したマクロは一回に1個しか変換してくれません。たとえば、第五条が二回出てくると、二個目は手付かずで残ります。複数回実行すれば、すべて書き換えれれるははずです。


MS-Wordの「全置換」の能力を使いたかったのですが、何故か動かなかったので、そのような使用になりました。置換してくれないので、1個づつコピー&ペーストしているのです。

2011/04/11 03:22 ni_ki への返信

私の提示したマクロは一回に1個しか変換してくれません。たとえば、第五条が二回出てくると、二個目は手付かずで残ります。複数回実行すれば、すべて書き換えれれるははずです。

マクロは知りませんが...

プログラムは考えられる動作が全て動いて完成します。不都合を直してプログラムを完成させるのが醍醐味なのです。

2011/04/11 21:56 ぴっぴ への返信

ぴっぴ さんによる書き込み:


プログラムは考えられる動作が全て動いて完成します。不都合を直してプログラムを完成させるのが醍醐味なのです。

ご指摘の通りです。私の能力では達成できませんでした。例えば検索置換後、今一度検索を実行して検索文字列が文章内に残っていないことを確認すれば良いのですが、私がそれを作ろうとすると有効時間内に完成しないと思われます。


それと「第一条」や「第 一 条」などの違いが有ることも気付いておりましたが対処出来ませんでした。

2011/04/11 22:31 ありんこ への返信

皆さんの書き込みに刺激されて、私もシェルスクリプトとPerlを用いて変換プログラムを組んでみました。なお、法令のファイルは「書類」の「法令集」に保存されているものとします。(拡張子は.txt)


この時文字列エンコードはUTF-8、改行コードはLFである必要があります。


まず下記の様な変換用テキストを用意します。これを仮にtable.textとします。

このファイルも文字列エンコードはUTF-8、改行コードはLFである必要があります。

-------------------------------------------------------------------

第一条 第1条

第二条 第2条

第三条 第3条

第四条 第4条

第五条 第5条

第六条 第6条

第七条 第7条

第八条 第8条

第九条 第9条

第十条 第10条

第一〇八号 第108号

...

[EOF]

-------------------------------------------------------------------


次に変換用プログラムですが下記の通り記述したスクリプトファイルを用意します。

これを仮にconvert.shという名前で保存します。


-------------------------------------------------------------------

#!/bin/csh

while 1

set numbers = ($<)

if $#numbers == 0 break

eval perl -p -e 's/$numbers[1]/$numbers[2]/g' *.txt

end

exit 0

-------------------------------------------------------------------

是等のファイルを「書類」の「法令集」にコピー(保存)したら、次にターミナル上で下記のコマンドを入力します。


$cd ~/Documents/法令集

$csh ./convert.sh < table.text


これで変換されているはずですが、くれぐれもオリジナルのテキストファイルで試さないで下さい。


このメッセージは次により編集されています:アイスクリーマ

2011/04/21 15:49 アイスクリーマ への返信

アイスクリーマさんのおっしゃるように何度か試してみましたが、

No such file or directory

(私のパソコン名):~ (私のパソコン名)$

と表示されるだけで、条文数のところが変換されませんでした。

「書類」の中に「法令集」のフォルダを作成し、その中に法令のファイルを保存(文字列エンコード:UTF-8、改行コード:LF使用ソフト:mi)してみたのですが…。何か気を付ける点はありますか?

ターミナルを使ったことがなかったのですが、アイスクリーマさんのおっしゃるコマンドをコピペしたのではまずかったのでしょうか?

ちなみに、使った法令集のファイルとはttp://law.e-gov.go.jp/htmldata/M29/M29HO089.htmlのファイル(htmlファイルの拡張子をtxtに変換しただけもの)です。

2011/04/21 17:28 ありんこ への返信

ありんこさん、こんにちは


いろいろご面倒おかけします。


まず、convert.shは法令集と同じディレクトリに保存されている必要があります。


次に、コマンドが正確に入力されていないのかもしれません。


ターミナル上で入力するのは$以降の文字列だけで良いです。


cd ~/Documents/法令集


と入力したら、


ls -al


と入力してみてください。


法令ファイルやconvert.sh、table.textが表示されれば正しい位置にたどり着いています。


後は


csh ./convert.sh < table.text


と入力すれば変換されるはずなのですが...


現在検証できる環境に居ないので、検証できる環境になったら改めて書き込みします。

2011/04/21 20:30 アイスクリーマ への返信

試して見ました。ターミナルの画面にずらっと、法令が表示されます。


ただ、対照表(table.text)の一行目の候補のみが最初の1回だけ置換されているようです。恐らく、私の試しかたが悪いのだと思います。


対照表(table.text)はUTF-8で改行コードはLFとのことですが、私の知識はここら辺が怪しいです。テキストエディットでUTF-8で保存してみました。HEXエディターで見る限り改行コードはLF(0x0Aまたは\nと表記するのでしょうか。)のようです。


それにしても「Perlは文字列処理が得意」と良く雑誌などで見聞きしますが、「なるほど」と感心してしまいます。

2011/04/22 06:39 ni_ki への返信

ni_kiさん、検証していただき恐縮です。


私の環境では、ご紹介した方法で無事変換できたのですが、まだまだ未熟でした。


ちなみに私の環境で「csh ./convert.sh < tabel.text」と入力してもターミナル上で法令が表示される事はありませんでした。


改行コードのLFは0x0Aで間違いないです。0x0D 0x0Aと続いていたらCRLF(WIndows)なのですが、私の環境ではそれでも正常に変換されました。

2011/04/22 06:52 お子様ランチ. への返信

以前いったん削除したのですが再度追記としてターミナルもアップルスクリプトも他言語もわかりませんが

似たような自動変換テーブル

のイメージは、アラビア数字を漢数字に変換する(2題)

http://hanatyan.sakura.ne.jp/vbhlp/kansuuji.htm

にあるような

Table(1) = "0123456789-0123456789-〇一二三四五六七八九ー"

Table(2) = "0123456789-"

Table(3) = "〇一二三四五六七八九ー"

という感じを想定してました。

2011/04/22 22:51 ありんこ への返信

ありんこ さんによる書き込み:


アイスクリーマさんのおっしゃるように何度か試してみましたが、

No such file or directory

convert.shに対して以下のコマンドを事項しても出ますでしょうか。


chmod u+x [convert.shへのファイルパス]

2011/04/26 13:36 アイスクリーマ への返信

アイスクリーマさん、こんにちは

上手くいかない原因が少しわかりました。アイスクリーマさんがおっしゃられるように

「cd ~/Documents/法令集」を入力(コピペ)後、「ls -al」を入力(コピペ)すると「No such file or directory」と表示されました。ということはアイスクリーマさんのいう「正しい位置」にたどり着けていないということのようです。


どうすればいいかわかりますか?


一つ質問ですが、

「cd ~/Documents/法令集」を入力(コピペ)後、「ls -al」を入力する前にリターンキーを押すのでしょうか?非常に初歩的な質問なのでしょうが、「cd ~/Documents/法令集」と「ls -al」を続けて入力べきなのか?それとも間にリターンキーを押すべきなのでしょうか?(といってもどちらもやってみて、結果は同じでしたが…)。

2011/04/26 13:43 ni_ki への返信

ni_kiさん、こんにちは。

「convert.shに対して以下のコマンド」をする、というのはどうすることなのでしょうか?ターミナルを初めて使うもので「convert.sh」のファイルを「法令集」のフォルダの中に用意した後、どうするのか、申し訳ありませんが、教えていただけないでしょうか?「convert.sh」のファイル中にni_kiさんのいう「chmod u+x」を書き込むのでしょうか?

2011/04/26 17:34 ありんこ への返信

ありんこさん、お手数おかけします。


現在、検証できる環境に居ないので概略だけ申し上げます。


まず、ターミナルを起動後、「cd ~/Documents/法令集」を入力(コピペ)したら、リターンキーを押してください。


これで、下記のような表示に変わるはずです。


/ユーザー名/Documents/法令集$


この状態で「ls -al」を入力(コピペ)して、リターンキーを押すとファイル名の一覧が表示されるはずです。


後は


csh ./convert.sh < table.text


と入力して、リターンキーを押したら変換されるはずなのですが...


追伸

ちなみにcdとは Change Directory の略称でコマンドの名前です。ターミナルでは、このコマンドで作業するフォルダを移動します。


また、ni_ki さんがご呈示してくださった chmod とは Change Mode の略称で、ファイルに実行権限等を付与するコマンドのことで、chmod u+x [convert.shへのファイルパス]と入力することでconvert.shに実行権限が与えられます。(convert.shに書き込むわけではありません。)


すると、./convert.sh < table.text と入力するだけで、cshと頭に入力しなくとも変換作業が実行できます。


つまりは、convert.shというテキストファイルがWindowsで言うところのバッチファイルに変換された事になります。


このメッセージは次により編集されています:アイスクリーマ

オートメーターを使って文字変換はできないものでしょうか?

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。