Re^5: 条件分岐とキー入力送信について

投稿者:アーク 投稿日:2024/10/23(Wed) 22:29:31 No.50

ビター さん

〉ただ、説明を読む限り、これを実現するのはかなり難しそうですね。
初心者が挑戦するには難易度が高いです。
しかし、プロデルで作れない訳では無いです。

取り合えずその機能を実現したプログラムを積んでおきました。
これを起動するとF1からF3のキーを乗っ取ってしまうので、
使い終わったらタスクトレイから終了させてください。
作り方の説明は私のサイトに掲載する予定です。

Re^4: 条件分岐とキー入力送信について

投稿者:ビター 投稿日:2024/10/23(Wed) 17:03:24 No.49

アーク さん

ありがとうございます。また、終わりが抜けていましたね…。
キーが押された時の手順は、プロデルのウインドウに対して、といった動作になるのですね。
てっきり、プロデルが動いている間、どんなウインドウに対しても共通で動くのかと勘違いしていました。

作ろうとしていたのはファンクションキーのF1やF2を押すことで、
Ctrl+CやCtrl+Vのショートカットキー動作を、Fキー1つで代理実行する、といったものです。
(例えばWordの文章をF1キーでコピーし、ExcelにF2キーでペースト、といった感じのイメージです)

仕事で大量かつ細かく分けて、文章を連続でコピペをする必要があるので、普通にショートカットでやると、Ctrlを押すタイミングがずれた時に「C」や「V」の文字が入力されることがあります。
それを防ぐための補助ツールを想定していました。

ただ、説明を読む限り、これを実現するのはかなり難しそうですね。
WordとExcel以外にも色々なアプリケーション間でコピペをしますので…。

せっかくアドバイスを頂いたのに残念ですが、この分は一旦、諦めることにします。
ありがとうございました。

Re^3: 条件分岐とキー入力送信について

投稿者:アーク 投稿日:2024/10/23(Wed) 14:46:38 No.48

ビター さん

確かに最近では「もし」を付けない書き方が許容されていますが、
初心者の方にはお薦めしません。
プログラムを日本語で書けるところがプロデルの特徴ですが、
反面、プログラムとそうでない部分の区別が付きにくくなります。

「もし終わり」が抜けています。
初心者の方は下記のように書きましょう。

  キーが押された時の手順
    もしこの時のキー名が「F1」なら
      「^c」を入力する
    他でもしこの時のキー名が「F2」なら
      「^v」を入力する
    他でもしこの時のキー名が「F3」なら
      「^x」を入力する
    他でもしこの時のキー名が「F4」なら
      「^v」を入力する
    もし終わり
  終わり

この方が構文が一目で分かるのでメンテナンス時にも楽です。
同じ事を毎回書きたくは無いので閉じていない件に関しては今後は触れません。

「キーが押された時の手順」自体も誤解されているようです。
この場合の「キー」はウィンドウに対応しています。
ウィンドウから何かをコピーしたりペーストする時の書き方です。

ウィンドウにテキスト領域を配置して、
「テキスト領域1のキーが押された時の手順」とすればテキスト領域1のキーを拾います。
対象のオブジェクト指定する必要が有ります。

また、「この時のキー名」について「{F1}」や「F1」と混乱しているようですが、
キーを入力する時は特殊キーは「{F1}」のように書きますが、
「この時のキー名」はテキストなので「F1」となります。

只、「Ctrl+C」と打つところを「F1」に変える必要が有るのでしょうか。

Re^2: 条件分岐とキー入力送信について

投稿者:ビター 投稿日:2024/10/23(Wed) 11:03:13 No.47

アーク さん

ありがとうございます。ご指摘の通り「終わり」をすっかり忘れていました…。
フォルダ作成については、条件分岐を下記のようにすることで動作するようになりました。
---------------
もし結果が空白かつ「[作成日]」というフォルダがデスクトップに存在するなら
  「重複です」と表示
他で結果が空白なら
  「[作成日]」というフォルダをデスクトップに作成
他で「[作成日]_[結果]」というフォルダがデスクトップに存在するなら
  「重複です」と表示
そうでなければ
  「[作成日]_[結果]」というフォルダをデスクトップに作成
もし終わり
-----------------


キー送信側は終わりを付け加えてもやはりだめでした。
(動作していることが分からなくなるので、ダミーの空ウインドウを表示させるようしました)
----------------
メイン画面を表示する
待機する
メイン画面とは
  ウィンドウを継承する
  はじめの手順
    この内容は「Fキー割り当て」
  終わり

  キーが押された時の手順
    この時のキー名が「{F1}」なら
      「^c」を入力する
    他でこの時のキー名が「{F2}」なら
      「^v」を入力する
    他でこの時のキー名が「{F3}」なら
      「^x」を入力する
    他でこの時のキー名が「{F4}」なら
      「^v」を入力する
  終わり
終わり
---------------------
ピンクの文字こそ出ていないのですが、根本的に間違っているのでしょうか?
何度もすみません。

Re: 条件分岐とキー入力送信について

投稿者:アーク 投稿日:2024/10/22(Tue) 19:23:21 No.46

ビター さん

「なるほど、各ブロックごとに終わりを入れないといけないのですね。」とあったので、
理解されたと思っていたのですが…。今回も閉じられていません。

もし結果が空白なら「[作成日]」というフォルダをデスクトップに作成
そうでなければ 「[作成日]_[結果]」というフォルダをデスクトップに作成

この部分は、

もし結果が空白なら
 「[作成日]」というフォルダをデスクトップに作成
そうでなければ
 「[作成日]_[結果]」というフォルダをデスクトップに作成
もしおわり

と書きましょう。
焦らずに着実に進むようにしましょう。

〉もう一つは下記のようにFキーにコピペコマンドを割り当てるものです
こちらも「終わり」が書かれていません。

条件分岐とキー入力送信について

投稿者:ビター 投稿日:2024/10/22(Tue) 16:47:08 No.45

先般は大変ありがとうございました。
またプログラミングを進めたのですが、2つわからない点が出てきました。

まず、1つめは条件分岐中の条件分岐についてです。
下記のように、日付と入力文字列でフォルダを作成するプログラムを作成しました。
入力がない場合は日付フォルダだけ作成するという動作をします。
------------
「作成するフォルダ名は?」と聞いて、結果とする

日付を日時形式化して頭文字とする
頭文字の先頭から2文字消して作成日とする
作成日の3文字目から1文字消して作成日とする
作成日の5文字目から1文字消して作成日とする
作成日の7文字目から8文字消して作成日とする

もし結果が空白なら「[作成日]」というフォルダをデスクトップに作成
そうでなければ 「[作成日]_[結果]」というフォルダをデスクトップに作成
------------------
最後の「作成」がピンク色なのが気になりますが、一応動作するようです。
ただ、できれば、結果が空白かつ「[作成日]」のフォルダが存在する時、結果が空白でなく「[作成日]_[結果]」のフォルダが存在する時、それぞれ「重複する」旨のメッセージを表示して作成をキャンセルしたいのです。
この場合、もし、結果が空白なら、の直後に
他でもし結果が空白かつ「[作成日]」というフォルダが存在するなら...
を追加しても動作しないようなのです。if文の直下にさらにif...とする方法はないのでしょうか?


もう一つは下記のようにFキーにコピペコマンドを割り当てるものです
--------------
キーが押された時の手順
  この時のキー名が「F1」なら
    「^c」を入力する
  他でこの時のキー名が「F2」なら
    「^v」を入力する
  他でこの時のキー名が「F3」なら
    「^x」を入力する
  他でこの時のキー名が「F4」なら
    「^v」を入力する
---------------
こちらはまったく動作できず、お手上げでした…。

長文で大変恐縮ですが、お力添えいただけると幸いです。
よろしくお願いいたします

Re^4: フォルダ内にあるエクセルをPDF変換

投稿者:ビター 投稿日:2024/10/20(Sun) 09:56:08 No.44

アーク さん

ありがとうございます!無事に動作できました!
結局、全部教えてもらうような形になってしまい、申し訳ありません。

さらに教えていただいたものから改良して
「ワード変換ボタン、パワーポイント変換ボタン」を追記し、
エクセル、ワード、パワーポイントの3つを変換できるように改良できました。
無事に全部動いたときは嬉しくて何だか感動しました。

とても面白くなったので、勉強していきます!

Re^3: フォルダ内にあるエクセルをPDF変換

投稿者:アーク 投稿日:2024/10/19(Sat) 09:35:42 No.43

ビター さん

デザイナ上で赤や黒一色の行は解釈されていないと思って下さい。
一応、下記のようにすれば解釈されます。

  保存名は、ファイル名のファイル名だけ
  保存名から「」へ拡張子を置き換える
  保存名を報告する

只、この書き方で拡張子は変更できません。
また、ファイルを保存する時はフルパスで指定します。

「エクセル変換ボタンがクリックされた時の手順」を下記に差し替えると、
希望する動作が得られる筈です。

  エクセル変換ボタンがクリックされた時の手順
    開く画面のフィルタは「エクセルファイル|*.xls*」
    開く画面の複数選択を○に変える
    開く画面を表示する
    もし開く画面のキャンセルなら手順を抜ける
    ファイル一覧は、開く画面のファイル名一覧
    もしファイル一覧が「{}」なら手順を抜ける
    エクセルを起動する
    ファイル一覧をファイルにそれぞれ繰り返す
      フォルダ名は、ファイルのフォルダだけ
      ファイル名は、ファイルのファイル名だけ
      ベース名は、[ファイル名を「.」で区切ったもの](1)
      保存名は、「[フォルダ名][ベース名].pdf」
      ファイルをエクセルで開いてデータとする
      データを保存名へPDFで 保存
      データを閉じる
    繰り返し終わり
    エクセルを終了する
  終わり

分からない箇所は遠慮なく質問して下さい。

Re^2: フォルダ内にあるエクセルをPDF変換

投稿者:ビター 投稿日:2024/10/19(Sat) 08:43:59 No.42

アーク さん

ありがとうございます。
なるほど、各ブロックごとに終わりを入れないといけないのですね。
また、参考例をありがとうございます。
かなりの部分を間違っていたのですね…。勉強になります。

まず、ファイル名を抽出して変数化…ということになるのだと思い、早速チャレンジしてみましたが、【変数】に処理結果を代入する、という部分が分からずいきなりつまづいてしまいました。

---------------
  エクセル変換ボタンがクリックされた時の手順
    開く画面のフィルタは「エクセルファイル|*.xls*」
    開く画面の複数選択を○に変える
    開く画面を表示する
    もし開く画面のキャンセルなら手順を抜ける
    ファイル名一覧は、開く画面のファイル名一覧
    ファイル名一覧をファイル名にそれぞれ繰り返す
      【保存名】はファイル名のファイル名だけ
      【保存名】から「」へ拡張子を置き換える
      【保存名】を報告する
    繰り返し終わり
  終わり
----------------

変数に対して、固定値ではなく何らかの処理結果をしたものを代入する、という書式例が公式で見つからず。
探しきれていないのだと思いますが、別の書式があるのでしょうか。
すみません。よろしくお願いします。

Re: フォルダ内にあるエクセルをPDF変換

投稿者:アーク 投稿日:2024/10/18(Fri) 17:01:11 No.41

ビター さん、こんにちは。アークです。

動かない理由は幾つか在るのですが、
先ずは全体として「種類」とか「手順」や「繰り返し」を書いたら、
「終わり」や「繰り返し終わり」で必ず閉じましょう。

次にそれらしい日本語を書いたらプロデルが勝手に解釈してくれると思うのは間違いです。
プロデルはAIでは無いので用意されている文言でないと解釈されません。

ここで行き成り正解を書く事がビター さんの理解に繋がるとは思えないので、
先ずは下記を読んで分からない処が有ったら遠慮なく聞いてください。

メイン画面を表示する
待機する
メイン画面とは
  ウィンドウを継承する
  はじめの手順
    初期化する
  終わり
  初期化する手順
    ーー自動生成された手順です。ここに書き加えたプログラムは消える可能性があります
    初期化開始する
    この実質大きさは{285,263}
    この内容は「エクセル変換」
    この文字色は「標準の文字」
    この間隔は{2,2,2,2}
    エクセル変換ボタンというボタンを作る
      その位置と大きさは{19,232,75,23}
      その内容は「エクセル変換」
      その移動順は1
      その文字色は「標準の文字」
      その間隔は{2,2,2,2}
    初期化終了する
  終わり

  エクセル変換ボタンがクリックされた時の手順
    開く画面のフィルタは「エクセルファイル|*.xls*」
    開く画面の複数選択を○に変える
    開く画面を表示する
    もし開く画面のキャンセルなら手順を抜ける
    ファイル名一覧は、開く画面のファイル名一覧
    ファイル名一覧をファイル名にそれぞれ繰り返す
      ファイル名を報告する
    繰り返し終わり
  終わり
終わり

▲ページの先頭へ

- WebForum -