virt_flyのブログ -15ページ目

virt_flyのブログ

フライトシミュレーターソフトのFlightGearで仮想飛行を楽しむブログです。

↑Microsoft 365で32ビットのAccessファイルを開いたら、コンパイルエラーを示して動かなくなった

Microsoft 365 Personalをインストール

 

●被団協のノーベル賞受賞を祝します

 

本題とは関係がないのですが一言。

 

日本原水爆被害者団体協議会のノーベル平和賞受賞をお慶び申し上げます。

 

被爆二世なもので嬉しさひとしおです。被爆者の多くが亡くなり、各県での会の活動が困難になっていると聞いて久しいですが、何もお手伝いできていないことを恥ずかしく思います。核兵器の即時廃絶、世界平和へつながることを願ってやみません。

 

●インストールしたはずのAccessが見つからない

 

今回は、MicrosoftのデータベースアプリAccessにかかわる話です。

 

Accessを使う必要にせまられて、Microsoft 365 Personalをインストールしました。

 

いうまでもなく、Microsoft 365は買い切り型でなくサブスクリプション型。期間を限って使用する権利を買うというのは、古い人間にとっては現物がないのに金が払えるか、ととて受け入れがたいもので、これまではスルーしてきました。

 

とはいえ、永続版のAccessを買うとなれば結構高額で、そんなことなら何台の端末にもインストールが可能なサブスクリプション型にし、好きな時に止めたらいいじゃないかと、ついに節を曲げることになったものです。

 

なお購入は、Microsoftから手に入れるより安いAmazonの1年版にしました。

 

いくつもバージョンのあるアプリのインストールってわかりにくいのですが、Microsoft 365 Personal 1年版についても少々まごつきましたが、なんとかインストール。と思ったらAccessが見当たりません。

 

メニュー画面に生成したMicrosoft 365(Office)のアイコンをクリックして開いた画面には、WordやExcel、PowerPointなどのアイコンがあるのに、なぜかAccessがないので激しく動揺。

 

実際には、メニュー画面の[すべてのアプリ]をクリックして開いたリストのなかに、Accessはちゃんとありました。Accessは別扱いなのですね。紛らわしいことをしてくれるものです。

 

ここまでは、毎度当ブログおなじみの「なんと驚いた」パターンですが、今回は想定外のサプライズがこの後にまだ控えていました。

 

●エラーの原因と対処

 

高い金を支払ったというのにAccessがない、と肝を冷やしたばかりですが、今度はそのAccessでmdbファイルを開いたところ、コンパイルエラーが表示されて動かないのです。愕然となりました。

 

Office(Access)はかつて32ビットしかなく、Office2010以降のインストーラーに32ビット版と64ビット版が同梱されるようになって、Office2016までは32ビット版が自動インストール、64ビット版は従扱い、Office2019から64ビット版のインストールが主に変わったんだとか。

 

今回エラーが起きたのは、64ビット版のAccessで32ビットAccessプログラムを動かそうとしたからです。32ビット版のAccessにてVisual Basicで書いたモジュールがエラーを起こすようです。テーブルやクエリーだけなら問題はありません。

 

①Accessプログラムを32ビット版Accessで動かす

 

慌てましたが、インストール時に32ビット版か64ビット版かを選択することができるということなので、何台でもインストールできるOffice 365の利点を生かし、とりあえず別なパソコンに32ビットでOffice 365をインストールしました。結果、従来型の32ビットAccessプログラムであるmdbファイルは、無事動かすことができました。


32ビットAccessプログラムは、次に示す64ビット対応に書き換える方法をとるより、不測の事態を招かぬようそのまま32ビット版Accessで動かす方が無難かもしれません。

 

②Accessプログラムを64ビット対応に

 

64ビット版Accessで32ビットAccessプログラムがエラーを起こすのは、プログラムの書き方が32ビット版Access向けだからなんだそうです。

 

Accessでは「Windows API」という機能を使用しており、その機能を呼び出すための宣言方法を64ビット版に改めれば、エラーは解消されるはずだということ。

 

今後、AccessをはじめOfficeは64ビット版を使うことがもっぱらと思われますから、32ビットAcⅽessプログラムも64ビット版対応に書き換えて使いたくなりますよね。

 

その方法は、該当する各モジュールの冒頭部分にあるDeclareステートメントにPtrSafe属性を設定すること。具体的にはDeclare Function …あるいはDeclare Sub …となっている箇所を、DeclareのあとにPtrSafeを挿入するよう、Accessで検索しすべて置換します。

 

 

なお、置換の際は現在対象となっているモジュールだけでなく、該当するモジュールがもれなく書き換えられるように、Accessで開いた置換のダイアログボックスの[カレント プロジェクト(C)]にチェックを入れておきます(画像参照)。

 

たったこれだけで、完了です。

 

結果、64ビット対応させたAccessプログラムは、Microsoft 365(Access)で今のところ問題なく動いています。

これじゃあテロだよ

 

非人道的不法がまかり通ってよいものか

 

ハマスの急襲から1年。戦争が中東全体に広がることが懸念される事態となっています。

 

ハマスを擁護するつもりはありませんが、イスラエルとて決して擁護できるものではありません。自分は、長年一方的にパレスチナ人を追い出して不法に入植地を拡大、入植者たちにパレスチナ人の村を襲撃させておきながら、よく他人のことは言えたものです。

 

ハマスの攻撃と連れ去られたイスラエル人の救出を口実としたその後のイスラエルのガザ侵攻は、軍事力にものを言わせた人質救出そっちのけのパレスチナ人へのジェノサイド、民族浄化の様相を呈しています。ホロコーストの犠牲者であったユダヤ人がすることかと悲しくなります。

 

しかも、敵対するヒズボラのメンバーの持つ、ポケベルやトランシーバーに爆薬を仕掛け、一斉に爆発させるという攻撃も実行しました。

 

ヒズボラが、スマホを使うことで情報が漏れるのを避けるために代わりの通信手段としてポケベルなどを採用するという情報を、イスラエル側が把握し、かつ爆薬を仕掛けたポケベルをヒズボラに使わせることに成功したわけですから、その手際には驚愕させられます。

 

ポケベルという民生品を利用した攻撃は国際法に反しており、今や見境なく標的の周囲に居合わせた住民を巻き添えにしてはばからないネタニヤフ政権の非人道的所業は、テロリストとなんら変わるところはありません。テロリスト国家に堕したと自ら示したと言えます。

 

こうした暴挙がまかり通るようでは、世界の平和にとり由々しきことです。パレスチナ人を迫害するイスラエルを長年支援し、その姿勢はダブルスタンダードだと揶揄される米国の責任も重大です。

 

米国の学生たちは、ガザ戦争に抗議していち早く立ち上がり、イスラエルでビジネスをしている企業やイスラエルの組織と取引をしている企業は、現在進行中のガザへの戦争に加担していると指摘し、それらの企業に投資している大学も同様だと主張しました。えらいですね。学ばねばなりません。

 

わが国では、防衛省が攻撃型ドローンの大量取得を計画しており、実証試験の契約ではイスラエル製が過半数を占めているとか。いかがなものか。国際司法裁判所(ICJ)はすでに2月に、イスラエルに対してガザ地区でのジェノサイド行為を防ぐあらゆる手段を講じることなどを求める暫定措置命令を出しています。

 

アップデートという名のテロ

 

テロといえば、以前Windowsのアップデートはテロだと書いたことがありました。Windows10とデュアルブートのUbuntuが起動しなくなったのでした。パソコンはDellのXPS15 9560でのこと。

 

マイクロソフトに政治的な動機があろうはずはなく、定義的に厳密にはテロとはいえないわけですが、不特定多数すなわち一般人が対象となり、企業国家という言葉が成り立つならマイクロソフトなんてその最たるもののなせる業であったわけで、被害のあまりこれじゃあサイバーテロだよと言いたくなってしまったもの。

 

バイトテロだなんて言葉が使われたりするのですから、言ったって良いですよね。

 

実は、今回立ち上げっぱなしにしていたWindows11パソコン、HPの Spectre X360 Convertible 13で、いつの間にか電源が落ちており起動しなおそうとしたところ、エラーが表示されてデュアルブートのUbuntuが起動しなくなっていたのです。

 

更新プログラムが自動実行されたのでしょう。「Verifying shim SBAT data failed:Security Policy Violation Something has gone seriously wrong:SBAT self-check failed:Security Policy Violation」が表示され(冒頭の写真)、デュアルブートのUbuntuが起動しなくなったのは、Windows11のバージョン22H2の更新プログラムの既知の問題だったようです。

 

Secure Bootを無効にすることで、デュアルブートが復活しました。本来ならばSecure Bootを有効にするところまで復旧作業をすべきところなのですが、失敗すると面倒なのでそこまではしませんでした。念のためにメモに残すことにしました。

 

後生だからアップデートテロは堪忍してください。

↑Ktatsuさんの手になる関東カスタムシーナリーの湘南の風景。航空機はThunderbirds塗装のT-38

関東カスタムシーナリーを飛んでみる

 

フライトシミュレーターであるFlightGearの仮想世界の日本に、あらたなカスタムシーナリーが加わりました。Ktatsuさんによる関東カスタムシーナリーです。

 

日本のサイトへの投稿によれば、植生図を利用したシーナリーが、あらたに首都圏の1都6県が含まれるエリア

に広がることになります。

 

植生を反映したシーナリーは、ある意味地域をリアルに示すことに成功しており、大いに魅了されてきましたから、関東カスタムシーナリーへの期待も高まります。

 

さっそく関東カスタムシーナリーをインストールし、飛んでみることにしました。

 

如何せん、関東エリアには住んだことがなく、一時立ち寄るくらいがもっぱらなので、この地域を良く知りません。気の利いたことは言えそうにないし、下手に恥をさらすことを思えばコメントは控えた方がよさそうです。

 

とは言え、さんざん恥をかいてきておいて何を今更です。次の2つのスクリーンショットをご覧ください。①が関東カスタムシーナリー、②が通常のシーナリーで、大体同じ位置から見下ろした東京です。

 

両者に明白な精度の違いが見られ、①は精細で②は雑なのがなぜかは、恥ずかしながら不勉強なためにわかりませんが、注目してほしいのは画像の右下、皇居にあたる部分です。②ではグレーの円形様にすぎないのに、①ではフォトシーナリーとはまた違うもののリアルさのある地形が出現しています。植生の反映の効果がよくわかります。

 

↑①関東カスタムシーナリーの東京

 

↑②通常のシーナリーの東京

 

付け加えると、カスタムシーナリーでは、レインボーブリッジや東京タワーなどのランドマークが現れないのはなぜでしょう。

 

次の画像は、関東カスタムシーナリーの江ノ島です。湘南は、学生時代の友人がいて大磯ロングビーチで遊んだことや、弟家族が藤沢に住んでいることから、身近に感じる場所です。蛇足ですが、通常のシーナリーには確か江ノ島は存在しなかったはず。

 

↑江ノ島

 

都会では、地表がコンクリートで固められているために、植生のあるところが島のようにくっきりと見えます。それだけ植生が少ないということなのでしょうが…。

 

おまけは、犬吠埼。こうした地形がどのようにしてできたのか気になり、惹かれる地形のひとつです。

 

↑犬吠