IT」カテゴリーアーカイブ

メモ タスクバーのプレビューの順番

タスクバーのプレビューの順番(説明)

Windows10を使用していて、MarketSpeed2について複数Windowを開くと、ある銘柄のWindowをタスクバープレビューの左端側に配置して、別のWindowを右側にまとめておきたいことがある。この並びにしたいときに、標準では何もできない。

アプリをインストール

7+ Taskbar Tweakerをインストールするとプレビューアイコンをドラッグして好きな順番に並び替えができる

https://forest.watch.impress.co.jp/library/software/7taskb_tweak/

画像生成AI!Stable Diffusionのメモ、インストール等

以下はメモで、まだインストールすらしていない。
2022/10/05時点>NMKD についてインストールした

AIが絵を描く時代がくるとは思わなかった。面白そうなので時間と興味があったら試してみる。

今はインストール方法の情報収集だけにしておく

・インストール等について

大きく2種類あるようだ。

1.WEBブラウザ

使うだけ料金が発生する。お金を使ってもすぐ使いたいときはWEB版が楽かも

https://stability.ai/blog/stable-diffusion-public-release

2.PC

自己の労力は惜しまないので無料で使いたい
更に3種類あるみたい
(A)anacondaをインストール
https://www.youtube.com/watch?v=dduZ1kwHjpU
13:15 PCで動かす(前置き)のところ

(B)NMKD Stable Diffusion GUI
https://signyamo.blog/stable-diffusion-gui/

>>実際にインストールしてみた

ダウンロードは無料だけど、寄付を求める画面が表示される。気に入ったら払いたい。とりあえず、No thanksをクリックしてダウンロードしたStable Diffusion GUI 1.5.0 1 GB

解凍には7-Zipが必要、下は展開した状態、任意の場所でよいらしい

StableDiffusionGui.exeを実行してインストール、時間がかかる

こんな画面が表示される

catで実行すると2枚作るのに約5分以上かかった。

次にModel変更(Waifu Diffusionを使う)

Original PyTorch Model Download LinkからダウンロードしてSD-GUIフォルダ → Data → modelsの中に入れる

7GBあって2~4時間くらいかかるとおもったら実際は約6時間かかった。終わったのは、18時だった。

歯車アイコンをクリックしてStableDiffusionModelFileからリストで先程ダウンロードしたファイルを選択する。

(C)Google Colaboratory(Chromeを使うのでWEBブラウザとも言えるが、コードを利用するので別とした)
https://signyamo.blog/stable-diffusion/#toc10

>インストール、使用方法はこれから

python data.DataReader yahooファイナンスからデータ取得でエラー

参考サイト

https://qiita.com/namkim/items/9b520d9c609cdca2b0fepandasから株価のデータ取得できなくなった件

https://www.bookloveru2.com/post/python-analysis16python(pandas_datareader)の株価取得でエラーが出た方へ

・エラー内容

久しぶりに株価チャートを描画して、グラフの比較をしようと思ったら、以下のエラーが発生。

エラー

RemoteDataError: Unable to read URL: https://finance.yahoo.com/quote/4082.T/history?period1=1647156086&period2=1653278399&interval=1d&frequency=1d&filter=history

調べると仕様が変わったみたい

・対応

モジュール(?ライブラリ)をインストール、自分の場合は、
pip install yfinance

そして以下のモジュールを追記
#2022/05/22 追記
import pandas
from pandas_datareader import data as pdr
import yfinance as yfin
yfin.pdr_override()
#2022/05/22 追記

nlistは配列として使用。個別では’9102.T’みたいに記載する
#df=data.DataReader(nlist,’yahoo’,start,end)#2022/05/22 エラー発生


df = pdr.get_data_yahoo(nlist,start, end) #2022/05/22修正

モジュールを追記して、dfのところを修正すればよい

さくらサーバのファイルマネージャーで/home/アカウント名/wwwより上位階層に移動できなくなってた

さくらサーバのファイルマネージャーで/home/アカウント名/wwwより上位階層に移動できなくなってた

昔は、非ドキュメントルート、ドキュメントルート外である/home/アカウント名/以下のフォルダにアクセスできたようだけど、今はできない仕様になっているようだ。数年ほど使ってなかったからわからなかった。

ということはアクセスログを取得する場合はFTPで取得するとかSSHかなにかで取得することになるのか?

これは不便だ。ファイルマネージャーから自由にLOGからファイルをダウンロードできてたのに、、、失望した

2022/05/08

python 勉強中、 文字列 改行ごとに配列にしたい

テストコード、2022/05/03

実際の使用するコードはこちら

出力結果

Blender3.0 Pythonで3Dテキスト作成でエラー

症状:Mac Blender3.0、 Python3.0を使用してフォント指定して3Dテキスト作成でエラーが発生

去年(Ver2.91?)使ったときはエラーはなかった。おそらくOSのバージョンによりフォントが変わったか
Blender3.0になってBlenderPythonのコマンドが変わったのかも?

原因:

bpy.data.fonts[“HiraginoSans-W6”].nameが使えなくなったかも?詳しくは調べていない。
また、前回のエラーで中途半端なオブジェクトが作成されていたようだ。

エラー内容:

 

調査:

ヒラギノ角ゴシックは存在する。
なのでフォントの指定方法が異なっているかもしれない。
フォントにこだわりがあるわけでもない。
ロードはできているかもしれない。

該当の部分である以下の行
bpy.data.fonts[“HiraginoSans-W6”].name = “HiraginoSans-W6”
をコメントにして動作するかを確認する。
コメントしてエラーはなくなった。

(2)次のエラー

どうやら、テキストオブジェクト名が、「O:27965.94」になっていなくて、標準の「Text.001」みたいになってた。
たぶんオブジェクトNameが正しく更新されていないようだった。
オブジェクトリストのところの、「Text.001」とか「Text.002」とか「Text」を全部削除した。
これでどうなるか試す。
OK
前回のエラーで中途半端なオブジェクトが作成されていたようだ。

また、もし、以下のところでエラーがでたらコメントにしておく
bpy.data.fonts[“HiraginoSans-W6”].name = “HiraginoSans-W6”

今後の対応:

Blenderのバージョンアップがあった場合、
最新版とこのローソク足実行用のバージョンの両方を残すようにする。
つまり、バージョンアップで上書きをしない。(旧版を削除しない)
そして、最新版で動作が確認できたときに、旧版削除する。

MacのBlender3.0で、pythonのpandas_datareaderを実行したらNo module namedというエラーが発生

環境:MacOS、Blender3.0
Macにて、Pythonスクリプトを使用してBlender3.0からPythonスクリプトを実行すると
エラー内容:
ModuleNotFoundError: No module named ‘pandas_datareader’
Error: Python script failed, check the message in the system console

やったこと
ターミナルから
pip uninstall pandas_datareader
pip install pandas_datareader
pip3 install pandas_datareader

でもだめ

結論

以前使用したのはBlender2.91から、新しく3.0にした。そうなると当然Blender3.0のPythonに置き換わってしまう。
よって2.91のときにインストールしたpandas_datareaderは消去されているので、3.0用に
またインストールする必要がある。頻繁にBlenderのPython使わないから忘れている。

やったこと

自分でメモしてた
Mac版BlenderのPythonにPip、pandas_datareaderインストールしたメモ
https://pikucha.sakura.ne.jp/blog/2020/12/27/mac%E7%89%88blender%E3%81%AEpython%E3%81%ABpip%E3%80%81pandas_datareader%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%9F%E3%83%A1%E3%83%A2/

MacOSのPythonとBlenderのPythonが存在する。つまりBlenderのPythonにpandas_datareaderを個別に
インストール必要がある。Pipもインストールする

以下はターミナルにて、Blenderディレクトリで実行した例である

(1)pipのインストール

ディレクトリのファイルを確認する
get-pip.pyがあるはず。なければBlenderのバージョンディレクトリ(2.9とか3.0とか)が違うか、グーグル先生に聞く。
>あった
(base) ToshironoiMac:bin toshiromaseda$ ls
get-pip.py python3.9

(2)次にget-pip.pyを実行

(3)pandas_datareaderをpipでインストール

/Applications/Blender.app/Contents/Resources/3.0/python/bin/pip install pandas_datareader

pythonでlocalからGoogle Driveへファイルアップロード、テスト中

環境:MacOS
Python
Anaconda、JupiterLab(結果はJupyterLabでは実行できない)、Chrome
ターミナル(こっちでPython実行)

GoogleCloudPlatformの認証設定とJsonファイルのダウンロードが必要

目的:ローカルドライブのCSVをグーグルドライブにアップロードしたい

エラーになったスクリプト、動作しない

 

(1)ライブラリ、モジュールインストール

pip install google-api-python-client
pip install oauth2client
したあとで
WEBで拾ったPythonスクリプトをjupyterで実行したら、
以下のエラー ’client_secret.json’がないということか?


/Users/toshiromaseda/opt/anaconda3/lib/python3.7/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access credentials.json: No such file or directory
warnings.warn(_MISSING_FILE_MESSAGE.format(filename))
(略)
InvalidClientSecretsError: (‘Error opening file’, ‘client_secret.json’, ‘No such file or directory’, 2)

(2)間違い

サービスアカウントキー(JSONファイル)の発行が必要らしい
参考
https://algorithm.joho.info/programming/python/google-spread-sheet-py/

GoogleCloudPlatformでプロジェクトを作成して、「ウェブアプリケーション」として
作成した。
https://console.developers.google.com/cloud-resource-manager
>>>これは後ほど間違いで「デスクトップアプリ」で作成する

そのJsonファイルをダウンロードして、実行するPyファイルと同じ階層に
入れておいてリネームしておく
yearhigh2022-4fe5fcXXXXXX.json(ファイル名は仮名)

client_secret.json

そして、スクリプト内のファイル名だけだと、No such fileになるので、フルパス+ファイル名にした。

(3)他のJsonファイルを作成

次のエラー

InvalidClientSecretsError: Invalid file format. See https://developers.google.com/api-client-library/python/guide/aaa_client_secrets Expected a JSON object with a single property for a “web” or “installed” application」

たぶん(2)で取得したJsonファイルではだめらしい。
他のJsonファイルを作成してみる。

スプレッドシートのキーではなくて、ドライブのキーを作成してみる。2022/03/08
https://dev.classmethod.jp/articles/google-spreadsheet-append-csv-from-command-line/

OAuth 2.0 クライアント IDのキーをダウンロードした。
画面の右側に操作という項目があるので、その下にダウロードアイコン(下矢印)をクリックすると
ダウンロードできた。
「client_secret_XXXX.apps.googleusercontent.com.json」というファイルがダウンロードできた。
これをリネームすればよさそう

(4)不要

(>>結果的に、アプリケーションの種類では「デスクトップアプリ」なので
このリダイレクトは不要になった)

次のエラー
Jsonファイルを作成したところまでできた。
「redirect_uris」についてなにか違うようだ。


InvalidClientSecretsError: Missing property “redirect_uris” in a client type of “web”.

https://stackoverflow.com/questions/48362621/oauth2client-clientsecrets-invalidclientsecretserror-missing-property-redirect

GoogleCloudPlatform画面のどこかにURIを設定するようだ

>GoogleCloudPlatform画面の「認証情報」のOAuth 2.0 クライアント IDの欄で
作成したウェブクライアントの編集を行う。

「ウェブ アプリケーション のクライアント ID」画面で
「承認済みのリダイレクト URI」を設定する
http://localhost:8080
そして再度、またJsonファイルをダウンロードする。
リネームした。

jupyterで実行すると、また別のエラーになった
「credentials.json」がないそうだ。2022/03/09


/Users/toshiromaseda/opt/anaconda3/lib/python3.7/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access credentials.json: No such file or directory
warnings.warn(_MISSING_FILE_MESSAGE.format(filename))
usage: ipykernel_launcher.py [–auth_host_name AUTH_HOST_NAME]
[–noauth_local_webserver]
[–auth_host_port [AUTH_HOST_PORT [AUTH_HOST_PORT …]]]
[–logging_level {DEBUG,INFO,WARNING,ERROR,CRITICAL}]
ipykernel_launcher.py: error: unrecognized arguments: -f /Users/toshiromaseda/Library/Jupyter/runtime/kernel-ba689470-fac8-4b05-9082-70df85f8e27f.json
An exception has occurred, use %tb to see the full traceback.

SystemExit: 2

空のファイルcredentials.jsonを作成する必要があるらしいので、
空のファイルcredentials.jsonをテキストエディタ(CotEditor)で作成した

(5)ターミナルコンソールでPython

jupyterで実行したらまたエラー


usage: ipykernel_launcher.py [–auth_host_name AUTH_HOST_NAME]
[–noauth_local_webserver]
[–auth_host_port [AUTH_HOST_PORT [AUTH_HOST_PORT …]]]
[–logging_level {DEBUG,INFO,WARNING,ERROR,CRITICAL}]
ipykernel_launcher.py: error: unrecognized arguments: -f /Users/toshiromaseda/Library/Jupyter/runtime/kernel-ba689470-fac8-4b05-9082-70df85f8e27f.json
An exception has occurred, use %tb to see the full traceback.

コマンドライン引数は jupyter では対応できないらしい
https://qiita.com/uenonuenon/items/09fa620426b4c5d4acf9

ということは、JupyterLabで実行しなければよいということか?
つまり、ターミナルコンソールでPythonで実行すればよいのかな?

(6)承認エラー

ターミナルで実行した。
するとChromeが開き、
「承認エラー
エラー 400: redirect_uri_mismatch
このアプリは Google の OAuth 2.0 ポリシーを遵守していないため、ログインできません。

となった。

参考
pydriveで「エラー 400: redirect_uri_mismatch」
https://awesome03.com/2021/01/10/pydrive%E3%81%A7%E3%80%8C%E3%82%A8%E3%83%A9%E3%83%BC-400-redirect_uri_mismatch%E3%80%8D/

GoogleCloudPlatform画面で
アプリケーションの種類では「デスクトップアプリ」を選択する必要があるらしい

GoogleCloudPlatform画面で「+認証情報を作成」をクリック
OAuth 2.0 クライアント IDでアプリケーションの種類では「デスクトップアプリ」を選択
して作成した。
そして、Jsonファイルをダウンロード
client_secret.jsonにリネームした

(7)承認エラー エラー 403: access_denied

実行したらChromeが開き、

アカウント(自分が持ってるアカウント)の選択で、アカウントを選択したらアクセス権がないらしい

承認エラー
エラー 403: access_denied
The developer hasn’t given you access to this app. It’s currently being tested and it hasn’t been verified by Google. If you think you should have access, contact the developer (maXXX@gmail.com).

アクセス権を与えてみる
https://console.developers.google.com/cloud-resource-manager

サービスアカウントの管理から
サービス アカウントでグーグルのアカウントを追加した。
いつも使っているグーグルメール mas***@gmail.com

画像

でもだめだったので
OAuth 同意画面
にテストユーザとして
グーグルアカウントのメールを追加した。

いくつかの画面が表示された
そしてChrome画面に

The authentication flow has completed.

もう一度ターミナルで実行すると
python upload_gdrive.py
Chromeには何も表示されず
ターミナル側にエラーになってた。


Traceback (most recent call last):
File “upload_gdrive.py”, line 32, in <module>
fields=’id’).execute()
File “/Users/toshiromaseda/opt/anaconda3/lib/python3.7/site-packages/googleapiclient/_helpers.py”, line 131, in positional_wrapper
return wrapped(*args, **kwargs)
File “/Users/toshiromaseda/opt/anaconda3/lib/python3.7/site-packages/googleapiclient/http.py”, line 901, in execute
_, body = self.next_chunk(http=http, num_retries=num_retries)
File “/Users/toshiromaseda/opt/anaconda3/lib/python3.7/site-packages/googleapiclient/_helpers.py”, line 131, in positional_wrapper
return wrapped(*args, **kwargs)
File “/Users/toshiromaseda/opt/anaconda3/lib/python3.7/site-packages/googleapiclient/http.py”, line 1021, in next_chunk
raise ResumableUploadError(resp, content)
googleapiclient.errors.ResumableUploadError: <HttpError 403 when requesting None returned “Insufficient Permission: Request had insufficient authentication scopes.”. Details: “[{‘domain’: ‘global’, ‘reason’: ‘insufficientPermissions’, ‘message’: ‘Insufficient Permission: Request had insufficient authentication scopes.’}]”>

このエラーを分析する

(8)エラー

2022/03/10
わかったスコープのURLがReadOnlyだ。ファイルをアップロードするからリードオンリーではだめなはず。
スクリプトに記載のURLがreadonly、読み込みのみ。アップロードするからReadではだめ。
SCOPES = ‘https://www.googleapis.com/auth/drive.metadata.readonly’
#https://www.googleapis.com/auth/drive
#https://www.googleapis.com/auth/drive.file
#https://www.googleapis.com/auth/drive.appdata
#https://www.googleapis.com/auth/drive.apps.readonly

参考8
[Python]GoogleDriveAPIの基本的な使い方
https://zenn.dev/wtkn25/articles/python-googledriveapi-operation
>>わかりやすい
最初にWebで拾ったスクリプトの内容が怪しい、自分の思うように動作しない
ように思えたので、「参考8」サイトを参考にして作り直す。

現在、2022/03/13作業中で、まだ実行すらしていない状態のスクリプト、参考8から抜粋した。

でも実行したらエラー。今ここ。

 

エラー

「Traceback (most recent call last):
File “uploadgoogledrive2.py”, line 26, in <module>
fields=’id’).execute()
File “/Users/toshiromaseda/opt/anaconda3/lib/python3.7/site-packages/googleapiclient/_helpers.py”, line 131, in positional_wrapper
return wrapped(*args, **kwargs)
File “/Users/toshiromaseda/opt/anaconda3/lib/python3.7/site-packages/googleapiclient/http.py”, line 937, in execute
raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/drive/v3/files?fields=id&alt=json returned “Insufficient Permission: Request had insufficient authentication scopes.”. Details: “[{‘domain’: ‘global’, ‘reason’: ‘insufficientPermissions’, ‘message’: ‘Insufficient Permission: Request had insufficient authentication scopes.’}]”>

>たぶんグーグルドライブのフォルダーのパーミッションの読み書きとかの設定が、
違っているのだろう。
またグーグル先生に頼る

(9)
Googleドライブの[設定]-> [アプリの管理]にリストされているアプリケーションを確認
認証しているスコープを確認

>>わかった。スコープの設定を飛ばしたから認証情報(/auth/drive 、auth/drive.file 等の設定)
がなかったのでエラーになってた。

もう一度認証情報を作成することにした。
作成のときにウィザードを選択

 

一度削除して、
設定して、再度Jsonファイルをダウンロードして、リネームした。client_secret.jsonにした
credentials.jsonも空のファイルにした。

2022/03/13、17:34

とりあえず、Chromeで認証まで進めた。
「$ python uploadgoogledrive2.py

Your browser has been opened to visit:

https://accounts.google.com/o/oauth2/auth?client_id=548555605276-j7kpa1otv5b387ekn3ndf6ktlp5aubs3.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&access_type=offline&response_type=code

If your browser is on a different machine then exit and re-run this
application with the command-line parameter

–noauth_local_webserver

Authentication successful.
Traceback (most recent call last):
File “uploadgoogledrive2.py”, line 29, in <module>
print (‘Folder ID: %s’ % file.get(‘id’))
AttributeError: module ‘oauth2client.file’ has no attribute ‘get’

printのところでエラーになってるからとりあえずコメントにしておく
再度実行する


(10)成功、アップロードできた

「Traceback (most recent call last):
File “uploadgoogledrive2.py”, line 42, in <module>
file = drive_service.files().create(
AttributeError: ‘dict’ object has no attribute ‘files’」

dictオブジェクトにfielsアトリビュートがないらしい。でもそんなdictなんてしらない。

25行目で自分に代入しているので別のオブジェクトにしておく
drive_service = drive_service.files()

file = drive_service.files()
ターミナルから実行して、うまくいった。グーグルドライブの指定フォルダにCSVがアップロードできた

以下にうまく行ったコードを記入

Documents/2020年株関連/kabu_python/

uploadgoogledrive2.py

。不要なコードもある

最新版2022/03/22

2022年のユーチューブの未来は、小さな同好会ユーチューバタレント・地下アイドル化する

・結論

2022年以降はユーチューブは、衰退し収益化は難しくなる。
ユーチューバーは、素人タレント化、地下・地方アイドル化して、少数の小さな同好会みたいな
グループとして視聴者どうしの馴れ合いクラブ化する。
新しい視聴者は参加しにくくなって、視聴回数は減少。
あまりにも個別化したユーチューブの視聴者層によって、
広告を出す側は、ターゲットを絞りにくく、ユーチューブの広告料は減少するだろう。

・ユーチューブのTV化

東京キー局、衛星放送、NHKを含めて、話題となるテレビ番組が減少。
テレビを受信できるモニターを所有しない人も増えており、テレビ番組を視聴する人口が減少している。
その代わり、ユーチューブはすでに記録された動画だけではなく、ライブ放送が楽しめる。テレビを見る代わりに、ユーチューブを見る若者が増えている。
投げ銭のスパチャ収入を求めて、日夜ユーチューバーたちはライブ放送やプレミア放送にがんばっている。

その広告料は年々増加傾向にあるかわりに民法テレビ局の広告料は減少し、テレビ局の人員リストラが増加中。
番組の制作費用は次第に減少し、出演するタレントの出演料も減少するため、安い若手芸人が増えている。
よって、番組の質が低下して番組はつまらないものと変化した。

つまり、ユーチューブはテレビの代わりになりつつあり、テレビ局とユーチューブは逆転関係になるかもしれない。

・たけのこのように増えたユーチューバーたち

玉石混交のユーチューブ動画が多い。登録者数が、百万人を超えても知らないユーチューバーの数は多い。

一部の女性ユーチューバーは、若さの特権で、色気と肌の露出で視聴回数を稼ぐ。
株系ユーチューバーは、損失を自慢し、数百万、数千万円を負けたというネタ動画を投稿する。しかし、本当に損失を出しているかは不明。他人の不幸は蜜の味で視聴回数は増えてしまう。
大人が、小学生か中学生レベルのくだらない内容を、大人の資金力でネタ動画を作成する。似たようなネタ、内容が多く、ほとんどが他人のパクリ。

ユーチューバーは、ライブ放送でチャットに投稿する視聴者とのつながりを大事にするようになり、スパチャ欲しさに視聴者を大事にするユーチューバーたち。
ユーチューバーもスパチャをくれる視聴者や毎回見てくれる視聴者の名前を覚えるようになって親しくなる。
その後、視聴者どうしの馴れ合いクラブ化してしまうため、新しい視聴者は参加しにくくなってしまい、視聴回数は減少となるだろう。
いずれ、自然淘汰が行われ、人気がなく視聴回数が稼げないユーチューバーは増えていくだろう。広告収入が入らず、または視聴回数が増えないユーチューバーが増加しその後更新はされない。

・UUUMの株価の衰退が表すものは

中貫経営が示したものは、株価の下落。
他人が稼いだお金の一部を搾取する経営状態なのに、社員の数が異常に多い。
ユーチューバーのお手伝いと言いつつもほとんど何もしていないのに、利益の20%をピンはねする。
何もしないのに、お金だけを抜いていくUUUMの経営システムに怒りを覚えた所属ユーチューバーは続々と離反した。離れていくユーチューバーの数が増えるごとに、UUUMの株価は下落した。
経営者は、汗も努力もせずに収入だけを得ている。

株価は、2019年末に一時6000円〜7000円もあったが、2022/01/17現在で、600円から700円位になり、株主たちは泣いているだろう。
しかも配当もないので、持っていても損が増えてるだけ。

このUUUMの株価の衰退は、ユーチューブの衰退を表しているのかもしれない。
なお、株価は需給なので、予想に反して上昇したり下落したりする。その時は流れる方に乗ったほうがよい。株価予想はほとんど当たらない。企業の業績に関係なく需給で株価は上昇する。意外な銘柄が意外なニュースで上がるのでそのときは流れに従う。

・おもしろいものが生き残る

弱肉強食はどこの世界でも起きる。
おもしろいものが生き残る

 

 

 

excel マクロ メモ IFS 、IFの複数判定

セルに複数のIF条件文を入れたい時がある。入れ子にできるが非常に見づらくなる。そこで「IFS」がある


=IFS(E7>=B7,”Down”,F7<=B7,”UP”,TRUE,”–“)
「条件E7>=B7、処理”Down”」で対になる。左から優先判定されて条件が真ならそこで判定は終わる。
後ろの「TRUE,”–“」は、範囲外の判定のために使用
前2つのIF判定に該当しないときは、ハイフン2つを表示するという意味
なお約200以上の条件を追加できる(細かい数字は覚えていない)

=IFS(E7>=B7,soundAlert(1),F7<=B7,soundAlert(2),TRUE,”–“)
関数も利用できる。注意:ただし、更新できるセルは、当該マクロが設定されたセルに限られるかもしれない。つまり「他のセル」の値を変更とかできないかもしれない。

補足
=AND(IF,IF)
=OR(IF,IF)
みたいな記載条件もある。つまり演算子判定(IF AND IFみたいな)記載ではなく、カッコ内にAND,OR演算子が存在するみたいな条件文