■ 質問はここへ ■

1190 にジャンプ
No. 1184投稿者: noraji日付: 2004/03/28 22:38:50
題名 : マクロとどこでもホイールについて

QX何とか使いこなせるようになってきました。三つ質問があります。
1.辞書引きを英辞郎で使っています。国語辞典が入れられたらいいなと思っていますが何か使えるものはありますか。
2.ファイル名に日時とタイトルなど設定しておきワンアクションであらかじめ決めたフォルダへそのファイルを作る、というようなマクロはありませんか?思い付きをぱっとメモしたいのです。
3.どこでもホイールの設定画面でキー設定が二列になっているのですが何回ヘルプを読んでもこの意味がわかりません。
よろしくお願いします。
(QXはすごいエディタだと思います。でも設定ばかりしていてかなり時間を取られているような気がします自制が必要ですね。)

No. 1185 (1184へのコメント)投稿者: CINEPHILE日付: 2004/03/29 06:02:12
題名 : Re:マクロとどこでもホイールについて

1.残念ながらQXで利用可能な実用的な辞書はないと思います。

2.簡単ですが次のようなマクロでどうでしょうか?

proc main
	dim f$,new
	const d$ = "D:\home\memo"  '※メモディレクトリ
	if dir$(d$,&h10) = "" then exit proc
	f$ = d$+"\"+cformat$("%s-%s%s%s.txt",date0$,left$(time0$,2),mid$(time0$,4,2),mid$(time0$,7,2))
	new = @@QOpenNew:@@QOpenNew = FALSE
	call @@OpenFile(f$)
	@@QOpenNew = new
end proc

3.2ストロークキーのことだと思います。QXのヘルプで「キー操作の変更」
の項目を見てください。英数字で2文字まで定義できます。

No. 1186 (1185へのコメント)投稿者: かぶねこ HP日付: 2004/03/29 21:24:06
題名 : Re^2:マクロとどこでもホイールについて

CINEPHILE さん、いつもありがとうございます。

今回のような質問だと、わたしには答えようがなかったのですが、
(使っていないのでわからない、マクロは範囲外、使っていないのでわからない)、
CINEPHILE さんにお答えいただいて助かりました。

No. 1188 (1186へのコメント)投稿者: CINEPHILE日付: 2004/03/31 04:50:38
題名 : Re^3:マクロとどこでもホイールについて

かぶねこさん、ご苦労さまです。

いよいよあの日が迫りましたが、ひょっとしてあれがなにすると、
乗り換え組を含めて、またここにも人が押し寄せるかもしれませんね。

No. 1187 (1185へのコメント)投稿者: noraji日付: 2004/03/30 22:31:32
題名 : Re^2:マクロとどこでもホイールについて

>1.残念ながらQXで利用可能な実用的な辞書はないと思います。
>
>2.簡単ですが次のようなマクロでどうでしょうか?
>
>>3.2ストロークキーのことだと思います。QXのヘルプで「キー操作の変更」
>の項目を見てください。英数字で2文字まで定義できます。

回答とてもうれしいです!
1.仕方ないです。
2.すごいです!気持ちがいいです。
項目別にこのワンタッチマクロを作って見たいと思います。
しかもただファイルを作った段階ではまだ保存されてないんですね。
タイトルがあるのにほぞんされていないとは・・・。でもどんな目的があるのかな?
3.分かりました。似たような動作は二番目の英数字で区別するためなんですね。きっと。

CINEPHILEさんかぶねこさんいつもありがとうございます。これだけで何千円もの価値があると思います。本当にありがとうございます。

No. 1189 (1187へのコメント)投稿者: CINEPHILE日付: 2004/03/31 05:00:23
題名 : Re^3:マクロとどこでもホイールについて

>しかもただファイルを作った段階ではまだ保存されてないんですね。
>タイトルがあるのにほぞんされていないとは・・・。でもどんな目的があるのかな?

おそらく標準的な動作だと思います。
他のエディタをよく知っているわけではありませんが、
例えば Meadow でも新規ファイルは名前を決めて開きますが、
ファイルを保存するコマンドを実行するまではディスクには書き込まれません。

名前を決めてからファイルを開く利点は、
無題ファイルと違って自動バックアップ(共通設定)が作成されるので、
不幸にしてクラッシュした場合の保険があることですね。

No. 1190 (1189へのコメント)投稿者: noraji日付: 2004/03/31 16:37:37
題名 : Re^4:マクロとどこでもホイールについて

>名前を決めてからファイルを開く利点は、
>無題ファイルと違って自動バックアップ(共通設定)が作成されるので、
>不幸にしてクラッシュした場合の保険があることですね。

よく分かりました!適確な返事がすぐ帰ってくるので感動してます。ありがとうございます。
(CINEPHILEさん早起きですね。夜更かしかな?いや、余計なことでした(^^ゞ…。)

No. 1191 (1185へのコメント)投稿者: noraji日付: 2004/04/04 11:38:07
題名 : Re^2:マクロとどこでもホイールについて

CINEPHILEさんのマクロ、タイトルの時間の項目を取ったらどうなるかやってみました。日付だけでタイトルができた後、もう一度マクロを実行すると同じファイルが出てきます。あたりまえのことなのかもしれませんが、これはわたしにとって予想以上に良いマクロになりました。その日の記録は何度でも追加できますし、明日になれば明日のファイルができます。日記などのその日の記録を取るのにとても便利です。かさねてありがとうございました。

かぶねこさんのNo.1126を読んで自分にもマクロが分かる感じがしました。今回自分のために作っていただいたマクロをいじったりなどしてマクロがなんとなく身近になってきました。

No. 1192 (1191へのコメント)投稿者: CINEPHILE日付: 2004/04/04 17:05:00
題名 : Re^3:マクロとどこでもホイールについて

一日一ファイルという使い方もありますね。
もともとファイルを開くためのメッソドを使用しているので、
すでにファイルが存在すればそのファイルを開きます。

前回のマクロではすべてのメモを一つのディレクトリに作成するので、
メモが増えてくると検索に不便かもしれません。
次のように変更すると月ごとにサブディレクトリを作成します。
下はおまけですが、常駐リストのファイル一覧に今月のメモを表示します。

const memo_dir$ = "D:\home\memo"  '※メモディレクトリ

proc main
	dim d$,f$,new
	if dir$(memo_dir$,&h10) = "" then exit proc
	d$ = memo_dir$+"\"+left$(date0$,4)
	if dir$(d$,&h10) = "" then mkdir d$
	d$ = d$+"\"+mid$(date0$,6,2)
	if dir$(d$,&h10) = "" then mkdir d$
	f$ = d$+"\"+cformat$("%s.txt",date0$)
	new = @@QOpenNew:@@QOpenNew = FALSE
	call @@OpenFile(f$)
	@@QOpenNew = new
end proc

proc open_dir
	dim d$
	if dir$(memo_dir$,&h10) = "" then exit proc
	d$ = memo_dir$+"\"+left$(date0$,4)+"\"+mid$(date0$,6,2)
	if dir$(d$,&h10) = "" then d$ = memo_dir$
	@@PrintToolList = TRUE
	@@ToolListType = 3
	@@ToolListFile$ = d$+"\*.*"
end proc

No. 1193 (1192へのコメント)投稿者: noraji日付: 2004/04/08 20:32:00
題名 : Re^4:マクロとどこでもホイールについて

>前回のマクロではすべてのメモを一つのディレクトリに作成するので、
>メモが増えてくると検索に不便かもしれません。
>次のように変更すると月ごとにサブディレクトリを作成します。
>下はおまけですが、常駐リストのファイル一覧に今月のメモを表示します。
>
>const memo_dir$ = "D:\home\memo"  '※メモディレクトリ
>
>proc main
>	dim d$,f$,new
>	if dir$(memo_dir$,&h10) = "" then exit proc
>	d$ = memo_dir$+"\"+left$(date0$,4)
>	if dir$(d$,&h10) = "" then mkdir d$
>	d$ = d$+"\"+mid$(date0$,6,2)
>	if dir$(d$,&h10) = "" then mkdir d$
>	f$ = d$+"\"+cformat$("%s.txt",date0$)
>	new = @@QOpenNew:@@QOpenNew = FALSE
>	call @@OpenFile(f$)
>	@@QOpenNew = new
>end proc
>
>proc open_dir
>	dim d$
>	if dir$(memo_dir$,&h10) = "" then exit proc
>	d$ = memo_dir$+"\"+left$(date0$,4)+"\"+mid$(date0$,6,2)
>	if dir$(d$,&h10) = "" then d$ = memo_dir$
>	@@PrintToolList = TRUE
>	@@ToolListType = 3
>	@@ToolListFile$ = d$+"\*.*"
>end proc

やってみました。便利そうなのでしばらく使ってみます♪ありがとうございました。

No. 1194 (1193へのコメント)投稿者: Aone日付: 2004/04/09 02:13:56
題名 : Re^5:マクロとどこでもホイールについて

はじめまして、Aoneと申します。

>>前回のマクロではすべてのメモを一つのディレクトリに作成するので、
>>メモが増えてくると検索に不便かもしれません。
>>次のように変更すると月ごとにサブディレクトリを作成します。
>>下はおまけですが、常駐リストのファイル一覧に今月のメモを表示します。

>やってみました。便利そうなのでしばらく使ってみます♪ありがとうございました。

メモマクロは、なかなかいろんなことができるし、まるでメモソフトのようにもなります。
他の方もいろいろ作られてますので、それも参考にされると面白いと思います。

以下は、このマクロとは違うアプローチで作ったメモマクロです。
マクロの勉強にもなると思います。
ご参考までに、長いので分けます。

const MAX=45
const Text_Dir = "C:\QX\MACRO\テキスト\"

は、好きなものに変えてください。

No. 1195 (1194へのコメント)投稿者: Aone日付: 2004/04/09 02:15:04
題名 : 複数テキストメモマクロ(1)

' 複数テキストメモマクロ
' TxtMemo.mac by Aone
type RECT
left,top,right,bottom
end type

dllname USER
cdeclare int MoveWindow(HWND, int, int, int, int, int);
const MAX=45
const Text_Dir = "C:\QX\MACRO\テキスト\"
proc main
dim sel
dim item2$[15]
dim files$[MAX], item$[MAX], i, fn, in$, a, d$, fd$
item2$[1] = " "
item2$[2] = "1| QX"
item2$[3] = "2|"
item2$[4] = "3| InterNet"
item2$[5] = "4| MEMO"
item2$[6] = "5| 小説"
sel = popupmenu(item2$)
if sel = 0 then exit proc
if sel = 1 then fd$ = Text_Dir + "01"
if sel = 2 then fd$ = Text_Dir + "02"
if sel = 3 then fd$ = Text_Dir + "03"
if sel = 4 then fd$ = Text_Dir + "04"
if sel = 5 then fd$ = Text_Dir + "05"
if sel = 6 then fd$ = Text_Dir + "06"

if dir$(fd$, &h10) = "" then
mkdir fd$
if dir$(fd$, &h10) = "" then exit proc
end if
@@FindRegExp = 1
@@FindRegExp = -2
fn = freefile()
for i = 1 to MAX
files$[i] = cformat$(fd$+"\%02d.txt2", i)
if dir$(files$[i]) = "" then
item$[i] = chr$(1)+files$[i]
open files$[i] for output as #1
close #1
else
in$ = ""
open files$[i] for input as #fn
if not eof(fn) then lineinput #fn, in$
close #fn
in$ = trim$(in$)
if left$(in$, 1) = "'" then
in$ = mid$(in$, 2)
elseif left$(in$, 1) = "^[a-zA-z0-9].+$" then
in$ = mid$(in$, 10)
end if
in$ = trim$(in$)
if in$ = "" then
item$[i] = right$("0"+trim$(str$(i)),2)+"| "+in$+"■未使用■"
else
item$[i] = right$("0"+trim$(str$(i)),2)+"| "+in$
end if
end if
next

No. 1196 (1195へのコメント)投稿者: Aone日付: 2004/04/09 02:16:47
題名 : 複数テキストメモマクロ(2)

dim shift,f$,s$
dim fn$
sel = popupmenu(item$)
shift = @@Shift
if sel = 0 then
exit proc
else
if shift = 0 then
call @@openFile (files$[sel])
@redraw = 0
@MoveFileTop
@FindStringBottom "(0"
@MoveFileTop
@redraw = 1
if @@SearchFound = 0 then
d$ = date0$
d$ = mid$(d$, 3, 2) + "." + mid$(d$, 6, 2) + "." + right$(d$, 2)
@MoveFileTop
@FindStringBottom "'"
if @@SearchFound = -1 then
@MoveEndLine
@Insert "'" + "(" + d$ + ")"
MoveWindow(@hwnd, 280, 130, 582, 480, TRUE)
@FileSave
else
@MoveEndLine
@Insert "(" + d$ + ")"
MoveWindow(@hwnd, 280, 130, 582, 480, TRUE)
@FileSave
end if
else
MoveWindow(@hwnd, 280, 130, 582, 480, TRUE)
end if
elseif shift = 2 then
fn = freefile()
open files$[sel] for output as #fn
close #fn
end if
end if
end proc

No. 1197 (1194へのコメント)投稿者: noraji日付: 2004/04/13 20:57:24
題名 : Re^6:マクロとどこでもホイールについて

>はじめまして、Aoneと申します。
>
>
>メモマクロは、なかなかいろんなことができるし、まるでメモソフトのようにもなります。
>他の方もいろいろ作られてますので、それも参考にされると面白いと思います。
>
>以下は、このマクロとは違うアプローチで作ったメモマクロです。
>マクロの勉強にもなると思います。

 AONEさんすばらしいマクロありがとうございます。やってみました。はじめにメモ用のファイルがずらっとできちゃうんですね。メモしたものを一度に一覧できるのがすばらしいです。CINEPHILEさんのおまけマクロで常駐リストにそのファイルを並べてみました。すると、移動キーですべてのファイルをぱらぱらとめくれるんです(^o^)。これはすごいメモソフトになったものだと思いました。
 今CINEPHILEさんのマクロとどのように使い分けるか考えています。楽しい悩みです。
CINEPHILEさんAONEさん本当にありがとうございます。ほかの人もこのマクロの良さを知って使えるといいですね。

 マクロのことはほとんど分かりません。でもこのマクロを使えるようにしただけでも満足です。日時の表記の仕方も変更できました。あと、マクロの中に"'"マークを扱っているようなんですがファイルにはそのような表示は出てきません。どんな意味があるんですか?また二回目にファイルを開くとそのときの日時がタイトルの後に出ます。その後開くたびに日時が変わるのかと思っていたのですが、三回目からは何も変化ありません。どのように考えればいいのですか。
 

No. 1198 (1197へのコメント)投稿者: Aone日付: 2004/04/15 23:46:29
題名 : マクロの作り方(1)

>マクロのことはほとんど分かりません。でもこのマクロを使えるようにしただけでも満足です。

返信、ありがとうございます、Aoneです。

私もnoraji さんと同じで、数ヶ月前まではマクロのマの字も分かりませんでした。学校も理工系ではないし、プログラム関係の仕事をしているわけでもありません。それでも、現在あの程度のマクロは作れるようになりました。

この掲示板でも過去ログを見ると、「マクロを勉強したい、どうしたらいいか?」というのをいくつか見受けられます。それぞれに回答は付いていますが、その後その方々がうまくマクロを作る技術を取得されたのかが、いつも少し気になり、今回もそう思い、結果、マクロを作るのはそれほど難しくないし、むしろ「はまる」くらいおもしろいものだし、はじめる年齢も若ければ若いほどよいということを伝えたくて、私事になりますが、ご参考になればと思い、簡単に書きます。

(1)
「マクロを勉強する書籍(テキスト)はないか?」と、いう質問を過去ログでも見かけます。直接、書籍_(テキスト)というものはないので、ユーザーの方が発表されている「講座」に目を通しましたが、読むだけでは、「マクロ技術取得」というところまではいたりませんでした。
(2)
手にはいる限りのマクロを集め、
1.どのようなマクロが現在作られているか?
2.マクロでどのようなマクロが出来るか?
ということも調べましたが、中身を見ると、ちんぷんかんぷんでした。
(3)
上記の作業をしている間、頭に浮かぶのは「こういうことも出来るのでは?」「ここは、この方がいいのでは?」「こういうマクロが欲しい!!」ということでした。
そこで思ったのは、

教科書がなければ自分で作ればよい。

と、いうことでした。
そこで、教科書(テキスト)とはどういうものか? どういう風にすれば、マクロが身に付くかを考えました。

No. 1199 (1197へのコメント)投稿者: Aone日付: 2004/04/15 23:47:44
題名 : マクロの作り方(2)

(4)
その間いろいろしたのですが省略して、ヘルプを読むだけでは私には無理があるので、結論を書くと、

1.読むだけでは身に付かない。とにかく作ること。
2.作ったものを添削してもらい、分からないところを説明してもらう。その繰り返し。
(5)
結局、大したことではなく、誰でも思いつく上記のようなことです。
(6)
その場合、単に尋ねるだけでは切りがないので、
1.他のマクロを見るなり、ヘルプを見るなりして出来る限りのことはする。(単に尋ねるだけのことはしない。)
2.そのやりとりを追体験することで、もともと私の個人的な話が、汎用的な教科書(テキスト)になる。
3.マクロには論理的に意味のないことは書いていないので、一行でも分からないところがあれば、曖昧にしない。
上記、3点を頭に入れてメーリングリストを作りました。 (もちろん無料。誰でも入れます。)
そこで私が提出した「問題」は、正確に数えてはいませんが、50をゆうに越えているのではないかと思います。

何でもそうですが、ただ立ち止まっているだけでは何も進みません。
「そうしたい」という思いがあれば何とかなるものです。

MLは事情があってヴァージョン2になりましたが、コンセプトは変わりません。
上記のような趣旨の「マクロ掲示板」があればよいのかもしれませんが、私は私の出来る範囲で、MLでしているので、マクロに興味ある方がMLに参加されていただけると幸いです。もちろん言うまでもなく、ただ参加するだけでは何も進みませんが...。

http://www.freeml.com/info/enjoysoftqx_2@freeml.com


かぶねこさん、上記宣伝のようなことになりましたが、私には多くの方がマクロのおもしろさを分かってもらいたいという一点があるのみです。「初心者掲示板」で場違いかつ、長文お許し下さい。

No. 1200 (1197へのコメント)投稿者: Aone日付: 2004/04/15 23:50:23
題名 : Re^7:マクロとどこでもホイールについて

前回のマクロについて簡単に解説します。
あのマクロは、WindowsAPIというマクロヘルプにも書いていないことを使っているので(MLで教わりました。)少々分かりづらいところもあります。

あのマクロの動作を簡単に書くと、初回でデータを保存するためのフォルダーとファイルを一気に作ります。

ですので初回には、ポップアップメニューには、その作られたファイル名が、凹み文字で記されます。

2回目に起動したとき、それが、■未使用■と表記され、選択して開くことが出来ます。

それを開くと、一行目に、はじめて開いた日付が表記されます。
その前にでもあとにでも、一行目であれば、何でもいいので文字列をいれます。
すると次回起動したときは、その一行目の文字列でポップアップメニューが表示されます。
さらにそのポップアップメニューの上で、Ctrlキーを押しながらメニューをクリックすると、その中身が消去されます。

>また二回目にファイルを開くとそのときの日時がタイトルの後に出ます。その後開くたびに日時が変わるのかと思っていたのですが、三回目からは何も変化ありません。どのように考えればいいのですか。

そんなわけで、日付については、作成日を自動記入してると言うことです。
おっしゃられるように毎回日付を「開いたとき」にすることも可能です。

No. 1201 (1200へのコメント)投稿者: Aone日付: 2004/04/15 23:50:58
題名 : Re^8:マクロとどこでもホイールについて


if in$ = "" then
item$[i] = right$("0"+trim$(str$(i)),2)+"| "+in$+"■未使用■"
else
item$[i] = right$("0"+trim$(str$(i)),2)+"| "+in$

in$というのは、そのファイルの一行目の内容。さらにはそれを利用して、ポップアップメニューの項目名にもなります。
if in$ = "" thenは、日本語にすると、そのファイルの一行目が何も記入されていなければ、つまり何も書かれていない、ときは、 right$("0"+trim$(str$(i)),2)+"| "+in$+"■未使用■"が、item$[i]になり、elseそれ以外、つまり一行目が表記してあるつまり一度でも開かれているときは、■未使用■をはずし、in$だけがポップアップメニューに表示されます。つまり、そのファイルの一行目の内容。


>日時の表記の仕方も変更できました。あと、マクロの中に"'"マークを扱っているようなんですがファイルにはそのような表示は出てきません。どんな意味があるんですか?'(04.04.15)

もともとこのマクロにはオリジナルがあります。
私が、MLで出した「問題」にitamさんに回答をいただきました。それをメモマクロに改造したものです。

そのマクロは、メモマクロではなく、マクロをテストするためのマクロでした。
マクロのコメントアウトは、"'"が、マクロ対応としても残してあるのでした。

もし一行目に、
'hogehoge
と書かれていたとしたとき、ポップアップメニューにしたときには、この"'"をはずして表示されます。さらにこれで、一行目に文字列があるかどうかの判定もしています。

MoveWindow(@hwnd, 280, 130, 582, 480, TRUE)

は、WindowsAPIで位置、大きさを規定してしまっているので、はずした方がいいかも知れません。全画面でお使いの場合、いろいろ数値を変えてみるとタイトルバーだけにする、マックシェードのようなことも出来ます。

面白いです(∩.∩)


ヘッダのみ表示
順番に表示(No. 1190 から)


メールアドレスを表示するにはURLの後ろに &m=1294e453 をつけてください。
ユーザー フォーラム一覧

http://www2k.biglobe.ne.jp/~araken/
http://0ban.com/araken/