新しいアカウントで始めました。

身の回りの出来事や写真が中心です。

リハビリのクリップ参照マクロで前回と関連で不味いとこありました。

2024-09-06 19:34:36 | LibreOffice

上の図は訂正した後に実行した画面で、直ってますが、前は

17行目のLカラムの「左腕」が本来は、上の図のように同じ色でないといけないのですが

登録されている語の最後の要素だけ、色違いでした。

今回追加したのが、158行から162行です。

終了の印が、無かったんですね。最後の要素に「""」を入れて、終わりの印をつけて

色の番号も要らないかもしれないが、一個前までペアで使っていたので、「1」を入れておきます。

今度はミスがなくなった、かもしれない?

 

一番上のシートを見ると、「肩」が付いているセルが一杯あります。

なので検索に「肩」だけだと、一杯青でマーキングされたセルが一杯あることになります。

検索したのは「20240604」であることと「肩」が付いているセルを探すです。

もう一個やってみました。「20240604」のクリップで「肩 腰」が付いているセルを探す。

一番上の行の2つのセルが該当したようです。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

リハビリクリップ参照するマクロでまずい所ありました!

2024-09-06 08:01:32 | LibreOffice

下のセルの内容を見ると、プログラムの効果が出てないようです。「座位」と「開」の文字色が同じは

無いでしょうから。

 

 

少し見にくいですが、11行目の4カラムでは確かに、文字色が変わっています。

原因はというと、セルの内容にありました。別のセルの例えですが、3行目の4カラム目で例えると

「座位 首」で正しいのですが、「座位 首 」は間違ってます。後者は「首」の後に半角のSPが入ってます。

入力時の間違いです。

これが原因で、偶数番目カラムのセルの内容で、内容と文字色の配列を作っていきますが

「""」の内容の配列が作られて、行きます。

しかし、「""」は終了条件にしてますので、最後まで処理されないことが起きてしまいます。

(下の図を参照)

それで上の図のように、赤ペンで囲っているように、本来は違う色で表示するべきが

同じ色です。

 

クリップの説明(右隣)は、「座位」、「立位」以外でも、二文字以外でもOKな筈です。

17行目で試しました。でも、これを治す前は1文字以外はおかしくなってました。

ですので、「右肩」であれば「右 肩」と二文字であれば、出来たのでした。

 

後は多分、良いかなあ!

77行目で終了を判断しているところ。

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

LibreOffice24.2でCalcを使い、VBAを使ってみてます。リハビリのクリップの参照を例題に。

2024-07-29 20:10:30 | LibreOffice

前回はバグ、エラーがあったのが気付いていませんでした。可怪しいとおもたのが

Cells(3, 6).Valueで"笑"を追加したのですが、Cells(8,12).Valueにも、有りました。でも文字色が違っていました。

調べてみると、ワークシートの形式を変えたときに、間違いが起きていたようでした。変更前に文字色を変更したものが

そのまま生きていて、実際には文字性を変更する部分が素通りでした。

Geminiに聞いてみたんですが、VBAではSub  foo()と始まるのが、マクロなのか?それ以外の関数など(マクロは

それ単体で実行できるが、それ以外の関数でpr、fnが関数名の先頭につくものは、呼ばれて実行できる)の区分ができない。

なので使用方法で区別する方法で、分ける、

いちばん簡単そうな方法を取ってみました。マクロはmcが先頭についている。

VBAの場合はFunctionが使えるようですが、値を返さななくても良いようです。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

LibreOfficeでリハビリのクリップ参照をやってみてました。

2024-07-25 22:30:02 | LibreOffice

マイクロソフトのOffice Pro 2003,2007版の正規ユーザーだったのですが、使えませんでした。理由は不明ですが。

その代わりにフリーのLiibre Officeを入れてましたので、VBA使えるか?期待以上でした。

使える。まあ、問題も有りそうですが、でもフリーですからね。しょうが無いかも。

VBAでは問題が有りそうで、SpecialCellsでしたか?使えませんでした。

前にも書いてましたが、ワークシートの表示の大きさを変えると、ダウンします。自分が試した感じでは

大きさを変える時は、ワークシートの上を広げる、左を広げる、表示されない黒のゾーンが出たら、消えるのを待つ。

それから表示エリアを変える。

原因は不明ですが、GPUのせいか?メモリ不足か?

ワークシートとVBAの画面を表示していると、出やすいようにも感じます。

マクロ、関数を作る時はSub foo()で初めて、End Subで終わるのですが、単独で実行できるSubなのか(つまりマクロ)

または下請けの関数なのか?区別できません。というか?区分する方法を知りません。

今流行りの言語にある、ローカル関数に出来れば、解決と思いますが…。

50行から始まるSub 年月日クリップ番号で検索し文字色変更()は単独で実行できないでしょう。

でもローカル関数と言うにも大きすぎるかもしれません。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

前回配列の初期化で悩んでました?

2024-07-22 22:44:00 | LibreOffice

文字色が気に入らないは、初期化で強制代入をしてました。117から152まで。

でも何かおかしい感じしますね。必要な配列を使うには、ReDimを使うと出来そうです。

実はこれにも落とし罠がありました。最後の文字列が""となって、番号が割り当てられました。

実際は何も影響はないようでしたが、でもでも

やはり気に入らない番号が、このやり方では割り当てられますね。

手作業で割り当てるものには、大きい55から小さい方に向かって、割り当てて

PGで割り当てるものには3から1個おきです。今は”尻”が最後で19番が小さい方からの割当がされてます。

Aryk2は文字列、ArycolorはIntegerとしてますが、Variantなので受ける方では、Variantにしないとエラーがでます。!

Ary2(21)が出来てしまいます。Arycolor(21)も出来てしまいます。

一方、Redimを使わないで、配列を固定させれば、上のようなことは起きませんが、データ数の問題がつきまといます。

どんな場合でも、きちんと動くPGを作るのはかなり大変です。自分で使用だけなら、被害は自分だけですので

良いかなあ?大事なので、下は!

Variantのデータは代入してもVariantらしいので、受ける時はVariantで受けないとエラーになります。

配列は代入ではアドレスのコピーで、VariantのデータはVariantで受ける必要があるようです。

そうしないとAryk2(i)みたいなところでエラーになって、考えてしまします。

 

下は前のもので、Aryk2()は文字列でArycolor()はintegerでタイプは一致している。

 

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

LibreOfice24.2による動画の参照方法を振り返ってみる。

2024-07-20 22:54:59 | LibreOffice

下の変更を実行しての結果は上です。

ただこれにもおかしな事があって、ワークシートのエリアを縮小していくと

ハングアップしてしまいます。GPUの問題なのか?LibreOfficeの問題なのか?

でも、再起動で復活が効きますので、なんとかは成りそうですが…。

上の部分は問題は、今のところ無いようです。でも、データのエリアが

Forで指定されてるので、いつかは問題になりそうではあります。

上の、Sub 年月日クリップ番号で検索し文字色変更()は、さらにその上のSub 年月日クリップ番号で検索()を変更してます。

入力部分が無くなるので、inputはコメントにします。

Sub Testでは入力部分のテータを作って、93行から呼んで、動くか?チェックしてみます。

良さそうなので、ワークシートからデータを作ります。

文字色が気に入らないものについては、117行目から152行で文字と文字色を指定します。

セルの文字と保存してある文字色が一致しているか?調べます。162行から167行目。

一致しているなら、次の文字に移ります。保存してある文字と一致してないなら

保存します。次の保存の番号を+1して、文字色の番号は+2しておきます。

データのエリアの文字を全部調べたら

178行目で

Sub 年月日クリップ番号で検索し文字色変更()を呼びます。

176行と177行は使った配列名が違うので、合わせます。これは参照が同じところということで

配列自体は1個しか無いと思います。どんな言語でも同じようです。

違ってたら「ゴメンです」けど。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

LibreOffice24.2、リハビリクリップの参照ハイパーリンクを単独セルに変更。

2024-07-18 09:22:31 | LibreOffice

ハイパーリンクは単独のセルにして、クリップの情報は右隣に追加。

20040716の行を追加したんですが、追加情報は文字に色がついてません。

首だけは実行して、文字色が変わりましたが…。

セルの参照の仕方が、変わりました。大きな変更はないと思います。

ただちょっと良くないのが、クリップが1行追加になると、文字色の統一がやり辛いですね。

二次元の配列を使って、文字の内容と文字色を保存しておいて、今まで使ったものがあれば

同じ色に設定して、無ければ文字の内容と文字色を保存する。

文字色を単に番号だけで決めてしまうと、見づらい色があるので、良いのか?やり直しか?の

判断があったほうが、良いかもしれませんね。

 

時間があれば、やってみましょうか?

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

LibreOffice24.2、リンクを張ったセルの一部色の変更で悩んでました?

2024-07-15 08:45:43 | LibreOffice

B3からI8までのセルの内容を見ると、微妙におかしいです。リンクを張った文字列は同じ色を指定しているのですが

D4に見られるように少し変です。Excelで調べてみると、ハイパーリンクはセル全体で一つのもののようです。

どうやら、セルの一部にリンクを張って、それプラス何らかの情報は許されないようです。

上の図のSub 年月日クリップ番号で検索し文字色変更()は許されないようです。

実行エラーは出ませんけど。

似たようなSub CharctersCheck()ではC1でセルの一部の色の変更はできてるようです。

 

これを直すには、ハイパーリンクの部分と付加的な情報の部分を分けて

2つにするしか方法は無いかもしれません。コードも変わるのが煩わしいですね。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

リハビリのクリップ参照、LibreOffice使用、格好がついてきました!

2024-07-13 08:58:27 | LibreOffice

1行で1日のクリップが全てあります。切り分けて、動画ファイルにしてるのですが。Aカラムは切り分ける前の動画にリンクしてます。

運動の種類をやや適当に区分してます。色分けしてます。今は、手作業です。

上はリハビリの実施日「20240618」と切り分けた番号「7」でセルを調べます。

背景色が水色のセルが該当したということです。で、

そのセルのリンク(Cntr+クリック)から動画再生されます。

キーボードから入力は最後に修正すればOKかな?

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする