mobazou

えー、iOS用に「巻き紙電卓」シリーズ(?)App出しています。社内ではメール誤送信対…

mobazou

えー、iOS用に「巻き紙電卓」シリーズ(?)App出しています。社内ではメール誤送信対策マクロやシステム情報の登録マクロをリリースしています。脱VBということでpythonの勉強始めましたが、Power Platformを勉強中。 既存のExcel 様式も解析して移行させるかな。

マガジン

  • Claude3.5とSwiftUIで行こう!

    SwiftUIは全然つかうことができませんでしたが、Claude3.5の登場によりようやく実装できるようになってきました。 ここでは、Claude3.5の力を借りながら実装する上での状況を報告してきます。

  • 複雑なExcel様式をVBAで解析をする

    Excel様式がメンテ出来なくなっている人が多そうなので、VBAを使い解析することにしました。

  • VBAで行こう!!

    Pythonで行こうとおもいましたが、やはりVBAでないと当面の開発効率はよくないです。そのうちPythonに戻るかもしれませんが、当面はVBAのノウハウをためていきたいと思います。

  • PowerPlatformで行こう!

    くそなPower Platformについてぼやくスレです。

  • OfficeScriptで行こう!

    Office Scriptにもなれないとですね。

最近の記事

Mac動作のiPadアプリ(MacCatalyst)の横幅制限

はまりました。巻き紙電卓アプリのブラッシュアップをしながら、Mac上での動作を試験すると、設定にない横幅制限が発生しており、1日近く悩みました。 サイズをログ出力しながら到達した結論は、「Macで操作するiPadアプリの横幅は、大きいサイズのiPadの画面と小さな画面のiPadの範囲でしか動かない」というものです。制限からみるとそうとしか考えられません。 しかし、縦はそうでもないんだよね。なんなんだろう。

    • SwiftUIの@StateObjectでの主要オブジェクトの保持の場所にハマる

      SwiftUIでアプリを構成しなおしているときに、スクロールビューに配列が表示されなくなり、丸一日悩みました。 ObservedObjectの場合ObservedObjectの場合、はじめに@StateObjectでインスタンス化させるのは親ビューだと聞いていたので、@StatateObjectを@mainのStruct Appでもたせていました。 ところが、ObservedObjectで@Publised変数として操作していた配列をスクロールビューとして表示するはずのビ

      • Excelの数式等が壊れた時の確認方法

        Excelの数式等が壊れた時は、Excel自身検出をして「リンクが違います」的なメッセージを出しますが、修復したくても修復場所がわからず、Excelを開くたびにエラーがでてしまいます。 原因サーバ上でExcelを共有していると、誰かがローカルで編集してしまい、数式等に書かれたリンクが変わってしまうことが原因のようです。 しかし、Excelには数式を含め見えないセル指定が多くあり、どこが壊れているのかがさっぱりわからず、Excelのメッセージから修復できないというのが現状か

        • SwiftUIにおけるObservedObjectとは?

           SwiftUIには、ClassのほかにStructというビュー構造体があり、このビュー構造体でUIを記述するのが特徴です。これまでのGUIでのビュー構成と違い、シンプルで論理的にUIが記述できるのが特徴です。 ObservedObjectとは  SwiftUIのClassには、ObservedObjectというプロトコルがあり、Classでこれを宣言することにより、ObservedObjectプロトコルを宣言したClassで@Publishedとして指定したvarが変化し

        Mac動作のiPadアプリ(MacCatalyst)の横幅制限

        マガジン

        • Claude3.5とSwiftUIで行こう!
          13本
        • 複雑なExcel様式をVBAで解析をする
          2本
        • VBAで行こう!!
          21本
        • PowerPlatformで行こう!
          6本
        • OfficeScriptで行こう!
          1本
        • SeleniumBasicで行こう!
          4本

        記事

          Swiftにおけるオブジェクト間の情報共有の種類と実装

           Claude3.5にいろいろとコードを生成してもらうと、Class や Struct間やその内部での情報共有のパターンがあるようなのでまとめてみました。本当は書籍で勉強してからコードを書くのでしょうが、AIに翻弄されないためにも整理が必要になりました。 親ビューと子ビューSwiftUIではUIをStructという構造体で記述するのですが、複雑なUIになるとビューを分割管理することになります。 ただし分割すると共通の変数が使えなくなり困ります。そこで登場するのが@Bindi

          Swiftにおけるオブジェクト間の情報共有の種類と実装

          Swiftでの便利なコンソール出力(配列)

          Swiftでのデバッグで便利な機能があったのでご紹介します。 print("deletedDigits = \(deletedDigits)") これで指定すると配列の中身を出力してくれます。便利だわぁ(当たり前?w) 現場からは以上になります。

          Swiftでの便利なコンソール出力(配列)

          生成AIがバグを直してくれないときの対処

          今、SwiftUIのコードをClaude3.5を使いながら作っていて大変助かりますが、生成AIにも限界があってトンチンカンな回答をしてきたり、場当たり的なコード生成を繰り返してきたりします。 それは生成AIの限界というもので、コードが多大になってくるとコードをアップロードしていてもあまり見てくれません。 ChatGPTなんかはひどいもので、提供しているファイルを表示してといっても500行くらいあるコードを10行くらいで表示してきたりします。なんども繰り返してようやく表示し

          生成AIがバグを直してくれないときの対処

          複雑なExcelシートを分析してメンテナンス可能にする

          Excelシートを作った人がいなくなるとメンテナンスできなくなるというのはよく聞きますが、昔作ったExcelシートの内容を忘れてしまいメンテナンスできなくなるケースもあります。 原因Excelシートの場合、プログラムとは違い、見えないところで仕組みが作られるのがメンテナンスできなくなる大きな要因と考えています。さらに行の追加などで数式が変化してしまうこと、特に条件付き書式の範囲に至っては取り付く島もないという感じです。 解決策そこで目に見えない数式などを一覧化し、該当する

          複雑なExcelシートを分析してメンテナンス可能にする

          iPadアプリをうまくMacで動かせるのはiOS17以降なのだ

          SwiftUIを使うと、構造的にUIを定義できるので、iPhoneとiPadのアプリをうまい具合に作れるようになりますが、これとは別にiPadアプリがMacで動くようになっています。 しかし、iOS17より前の機能をつかっていると、MacでiPadアプリを開くとメチャクチャ大きいウィンドウで開いてしまいます。そのため、左右に大きな空白を設けてなんとかサイズを維持させるはめになるのですが、iOS17の機能を使うと、Macのウィンドウが内部のコンテンツに合わせて開いてくれるので

          iPadアプリをうまくMacで動かせるのはiOS17以降なのだ

          Claude3.5にSwiftUIのVStackでの余白の設け方を聞いてみた

          Claude3.5にSwiftUIでのVStackでの余白の設け方を聞いたら勉強になったので共有しますね。 StackのObject1の上とObject4の下のスペースは、spacing パラメータでは制御されません。これらの領域を調整するには別の方法を使用します。それぞれの方法を説明し、図で示しましょう。 この図では、VStack全体を囲む外側のフレーム(青い枠)と、内側のパディング領域(緑の点線)を追加しました。これらを使用して、Object1の上とObject4の下

          Claude3.5にSwiftUIのVStackでの余白の設け方を聞いてみた

          XCodeでCocoa Podsって時代遅れだったのね・・

          AIに言われるがまま、AdMobをCocoaPodsで使っていましたが、いまはSwift Package Managerで導入できるのね・・・ ターミナルのコンソール作業がクソだったから嬉しい。てか早く教えてくれよ・・・AIは過去情報をもってくることが多いので、「おい、それ最新の情報?」とか聞いてあげる必要がありそう。 ちなみに、操作になれておらずうまく導入できなかったので、Package Managerに登録されていたAdMob SDKが消えてしまったので、しかたなくG

          XCodeでCocoa Podsって時代遅れだったのね・・

          AdMob SDK11.70を使ってはいけない

          2週間ほど前にリリースされたAdMob SDK11.70ですが、iPhoneやiPadでうまくうごいているので、問題なく動きそうですが、なんとMacのiPadモードで動かすとクラッシュします。 解決方法は、GitHubで11.50などの以前のバージョンに戻すこと。 苦労したわ・・・

          AdMob SDK11.70を使ってはいけない

          XCodeでのInfoのローカライズ(多言語対応)方法がコロコロ変わるので正解を見つけるのに苦労した話

          Appleいいかげんにしろよ! で終わりたいところですが、X15.3での最新のローカライズ方法がどこにも欠かれておらず苦労したのでメモしておきます。 ローカライズ手順まず、XCodeのターゲットのInfo(旧Info.plist)にいれるKeyを追加し、デフォルトの言語で表示する言葉をを入力します(NSUserTrackingUsageDescription、Advertisements will become more beneficial.など) 次にローカライズの

          XCodeでのInfoのローカライズ(多言語対応)方法がコロコロ変わるので正解を見つけるのに苦労した話

          生成AIに聞くSuiftUIで現状のビューを維持しながらサブスクリプションで新ビューに移行させる方法

          無料アプリを含めサブスクリプション機能の実装のための手順をClaude3.5に聞いてみました。勉強になるわぁ。 1. サブスクリプション状態の管理まず、アプリ全体でサブスクリプション状態を管理するための`SubscriptionManager`クラスを作成します。 import SwiftUIimport StoreKitclass SubscriptionManager: ObservableObject { @Published var isSubscribed

          生成AIに聞くSuiftUIで現状のビューを維持しながらサブスクリプションで新ビューに移行させる方法

          生成AIを使いVBAのフォームを生成してもらう方法

          最近Claude3.5でプログラムを作ることが多くなっていますが、Excelのブックからシート一覧からシートを選ぶよう指示すると、シート名を直接入力するようなコードを生成してしまいがちです。 そうでなければ手作業でフォームを作れとか言ってきたりして、それでも手間は減りますが、どうせなら生成してほしいところです。 Visual Basic For Applications Extensibilityを使うことを指示するフォームのインポートファイルを生成してもらいましたが、こ

          生成AIを使いVBAのフォームを生成してもらう方法

          とあるClaude3.5との会話(SwiftUIのコード修正)

          もうね、プログラム開発にClaude3.5は欠かせませんよ。ていうかワイはアホだったのかww ワイ:allClearの状態で演算子を入れても無視してください Claude3.5: 承知しました。`allClear`の状態で演算子を入力しても無視するように`ContentViewModel.swift`を修正します。具体的には、`setOperator`メソッドを更新して、新しい計算が始まっていない状態(つまり、`previousInput`が`nil`で、`current

          とあるClaude3.5との会話(SwiftUIのコード修正)