投稿

2021の投稿を表示しています

Translate

VBSでマクロの実行時に警告を非表示にする方法

イメージ
マクロ付きExcelファイルを実行する際に、VBScriptで警告を抑制する方法 VBScriptでマクロ付きExcelファイルを起動する際に、マクロの実行警告を表示させないコード 下図のようなメッセージだけ表示するマクロ付きExcelファイルがあるとする。 何の害も無いこのマクロ付きExcelファイルのxlsmファイルを開こうとした場合でも、警告が表示される。 このファイルを開こうとすると・・・ マクロ付きExcelファイルを実行する為の警告メッセージで、「セキュリティの警告:マクロが無効にされました。」と表示され、【コンテンツの有効化】ボタンを押さなければ、マクロが実行出来ない状態となる。 確実にそのファイルが安全だと分かっており、頻繁に開くファイルであった場合には、いちいちボタンを押下する作業が煩わしくなる。 また、マクロ付きExcelファイルである、xslmファイルを自動実行するバッチ処理であったりする場合等は、人がこのボタンを押さないといけない状態だと、無人での自動化の妨げとなる。 このメッセージを抑制、非表示とし、VBScriptで実行する場合は、下記のようなコードで実現できる。 仮に、AutoMacro.vbsとして保存 Dim objExcel Dim objBook Set objExcel = CreateObject("Excel.Application") 'イベント抑制 objExcel.EnableEvents = False set objBook = objExcel.Workbooks.Open("P:\OneDrive\Download\test\testbook.xlsm")) objBook.Close() objExcel.Quit() Set objBook = Nothing Set objExcel = Nothing 共有フォルダーからコピーしてきたファイルは、あらかじめファイルのプロパティで、セキュリティに別途チェックを入れておく必要がある事をお忘れなく。

EXCELのVBA高速化対応 | データが多く遅いと感じたら

イメージ
ExcelのVBA高速化の3要素 1.一括でデータを読み取る(データ取得でForは使わない) データ取得時に下記のように、セルの範囲のデータを取得する際に、For分で回しながら一つづつ値を取得をしている場合、Excelオブジェクトは内部で様々な処理(検証や、変換等)が行われる為、それを、セル一つづつの単位で回すと、データ量が少ない場合は対して問題にならないが、データ量が増えてくると分単位でかかる場合がある。 この表を下の枠に写す悪いコード例 実行前 実行後 Sub もっさり動作コード() Dim iRow As Long Dim iCol As Long For iRow = 2 To 4 For iCol = 2 To 5 Sheet1.Cells(iRow + 4, iCol).Value = Sheet1.Cells(iRow, iCol) Next Next End Sub 高速化後 Sub 高速化コード() Dim iRow As Long Dim iCol As Long Dim OutputLayout() As Variant '一括でデータを取得し OutputLayout = Sheet1.Range(Cells(2, 2), Cells(4, 4)) '一括でデータを出力 Sheet1.Range("B6:D8").Value = OutputLayout End Sub 2.自動計算機能のOFF EXCELシートのセル内に、沢山の数式が埋め込まれている場合、シートの複製や、値をセットした際に、毎回式が評価され、自動的に再計算されてしまいます。 データが大量になってくると、この評価にものすごく時間が掛かってしまう為、OFFにすると良いでしょう。 Sub 処理() Dim iRow As Long Dim iCol As Long

Teamsでフォルダーやファイルの移動が出来ない場合

イメージ
契約内容によっては、Teamsでファイルやフォルダー移動のオプションが無い Teamsでフォルダーやファイルの移動が無い場合の対応方法 契約内容によっては、本来出てくる筈の「ファイルやフォルダーの移動」がメニューとして出てこない場合があります。 出てこないパターンで一番多いのが、SharePoint(Microsoft SharePoint)の契約がないパターンでの契約です。 Amazon等で、Officeの契約を行うと、主にはOffice製品を使用する系のサービスだけが付随する為、SharePoint上で行える操作が一切出来ません。 Teamsの利用は契約だったり、無料で利用する事が可能なのですが、Temasのファイルに保存される内容は、実際にはSharePoint上へ保存されている為、ShaerPointの操作が行えないパターンでは、直接的にフォルダーやファイルの移動が出来ません。 フォルダーの編成を変更したい場合は、一旦データを全てダウンロードし、フォルダーを作成し直した上で、該当の場所に、ダウンロードしたファイルをアップロードし直すことで、対応出来ます。 もしも、Teamsで、ファイルやフォルダーを移動したいのにメニューが出てこない場合は、SharePointにアクセスして、自分がSharePointが利用可能か確認してか、出来なければ、ダウンロード、フォルダー作成、データの再アップロードを試してみてください。

圧縮時に自動でパスワード迄生成するフリーソフト

イメージ
圧縮時自動パスワード設定フリーソフト myEncsan(Windows用) 昨今は、メールにファイルを添付して送信する場合に、ファイル自体にパスワードを設定し、2通目のメールでパスワードを通知するセキュリティ対策が当たり前のようになってきました。 1通目に、メールの本分と、ZIP等でパスワードを設定して、メール本文の中で、「パスワードは後程送信致します」等を案内して送信し、2通目に件名を「[通知]パスワード」等として通知する手法。 意外とこの1通目のパスワード設定に頭を使うのがめんどくさくなって、日付の文字を組み合わせたり、パスワード自体が規則的になって推測されやすいオチが非常に多い。 自分もパスワードを毎回考えるのがめんどくさくなってきたので、圧縮とパスワード設定を自動で行うツールを作ってみました。 パスワード付き自動ZIP圧縮ファイルmyEncsanの動作環境 Windows Microsft.NET Framework4.7.2が適用されているパソコン Windowsアップデートを全部適用している場合は、適用されていると思います。 使用方法 ファイルは ここ からダウンロード https://drive.google.com/file/d/126mxZGuT81410xgZjnwrUOrX4tdfYy1f/view?usp=sharing ZIPファイルを解凍後、「myEncsan.exe」を実行します。 圧縮したいファイルやフォルダーを、ツールにドラッグします。 [実行]ボタンを押下すると、画面に表示されているパスワードで圧縮されます。 このパスワードを2通目のパスワード通知で案内して下さい。 ZIPファイルは、圧縮元と同じフォルダー内に作成されます。 ここに表示されているパスワードでZIP圧縮されています。 1通目にZIPファイルを添付して送信し、2通目のメールでパスワードの通知を案内して下さい。 あとがき この手のフリーソフトは沢山あるのですが、アプリケーションのダウンロードが禁止されている職場だったりもあり、いっその事自分で作ってしまえな

Chromebook(Chrome OS)のサービスが廃止されていく

イメージ
段階的に廃止されていくChromeOSのサービス photo Chromebookとは 世の中には様々なOSが、結構存在する。 その中でも圧倒的シェアを誇るのが、MicrosoftのWindowsだ。 OS Rate Windows 88% Mac OS 10% Linux 2% Chrome OS 0.4% Unknown 0.1% BSD 0.1% Chromebookとは、Googleが作ったOSで、Chrome OSと呼ばれるもので、ブラウザーであるChromeとは違う。 MicrosoftのWindowsや、AppleのMacに対抗して出されたOSなのだけれども・・・シェアが物凄く低い。 どの業界でもそうだけれど、シェアが一番多い物が発展していく。 ゲーム機で言うと、Nintendo Switchや、PlayStationは沢山売れているけれど、それ以外のゲーム機は・・・名前すら出てこない程シェアが低くて、それに伴って、ゲームソフトは、Nintendo SwitchやPlayStationで出される事が殆どだ。(最近は、Windowsでも Steam という物が出てきて遊べるようになったけれど。 もちろん、シェアが低い物は、開発している会社にとっても、維持していく為のコスト削減に踏み切っていくしかないわけとなるのだが・・・ Chromeアプリの廃止が決定 1000RT:【発表】「Chromeアプリ」22年6月に終了へ、Googleがタイムラインを発表 https://t.co/MXBB5nEI02 Chrome OSを含むすべてのOSにおいて、Chromeアプリのサポートが終了するとした。 pic.twitter.com/B5Xx5YD9h2 — ライブドアニュース (@livedoornews) January 16, 2020 そんな中、ChromeOSユーザーを震撼させる発表が!! GoogleがChromeアプリを廃止を発表してしまった。。 それでなくても、ChromeOSでは出来る事が少なく、ただの箱となりかねないのに、さらに出来る事が狭められてしまうのだ。 今後はPWAやChromeの拡張機能と

エンジニアはクラウドワークスで即辞退すべき案件とは

イメージ
低単価な案件は、詳細を見る事すら時間の無駄 「~5000円」と書かれている案件は、詳細を見ることすら時間の無駄なので、スルーする事が一番。 低単価だからといって、その単価程度の難易度とは限らない。 筆者も一回うっかり拾ってしまった、Libre OfficeのCalcというマクロを組む案件だが、2000円で受けてしまった。 内容は、色々試してやり尽くしてそれでもうまく行かなくなったようだと、受けてから説明を受け、さすがに筆者もハマった。 最終的には、データをバイナリデータで取り込み、デコードして、処理をしていくという事に、情報の少ないLibre OfficeのClacというExcelライクなマクロでやってのけたのだが、1日がかりだった。 それが2000円。 どこかでトイレ掃除を2時間やっている方がマシな案件だった。 詳細は見積り金額が書かれているか真っ先に確認! 端的に説明すると、クラウドワークスの案件は、いわゆる釣り案件が存在する。 案件リストの中に、簡易的な報酬がかかれているが、例えば「500,000~1,000,000円」のようにある。 流石に単価が高く、案件のタイトル的にも、報酬に見合った案件だと思い詳細を見る。 詳細には、やりたい事が割と細かく書かれていて、添付されている要件的な要望も確認し、作業量と単価が釣り合っていると思い、応募したい意思が固まり、さらに詳細を読み進めていくと・・・ 長い文章の一番最後に、見積り金額は「10万円でお願いします。」と書かれている。 これは物凄く時間の無駄にされた気分になる。 ぎりぎり35万円で引き受けられるか・・と低単価を考えていたのに、10万円と固定で書かれている。 こういう姑息な真似をするクライアントは、実績作りで付き合っていても酷い目に合うだけなので、辞退する方が良い。 案件の詳細は、一番最後の方から読み、見積り金額が固定で書かれていたら、即スルーが時間の節約になる。 契約前に詳細な提案が必要な案件に利用されるな! 企業に対面で提案を求められている場合と違い、ネットでの募集案件で事前に細かい提案書や、内訳を求めてくる場合、大抵の場合、無料で

.NetFrameworkから.Net Coreの移行で出来ない事[WindowsForm編]

イメージ
.NetFrameworkから.NetCoreで作り直す時に直面した事 フレームワークのバージョンを変更するだけで移行が可能か? .Framerowkのバージョンが上がるだけだった場合の移行では、使用する.Frameworkのバージョンを変更するだけでも、ある程度新しい.NetFrameworkに変換がされたが、.NetFrameworkから、.Net Coreへは、根本的にアーキテクチャが異なるようで、使用するフレームワークを変更するという単純な方法では出来ないようであった。 変換する方法自体はいくつかあるば、「.NET Portability Analyzer」を利用し、行こう可能なアセンブルを分析したり等で、調整していく方法である。 筆者の経験上、こういった変換は、動作確認に多くの時間を割く上に、その後リリース後の、動作不良を起こした際に、影響範囲の特定にまた時間を掛け、みたいな、急を要するトラブルの責任リスクや、評価に繋がってしまうのを経験している為、基本的には、アーキテクチャが変わった場合には、ゼロから作り直す方法を取っている。 ゼロからといっても、.NetFrameworkの作り方に依存しすぎる作りをしていない限りは、コードのコピー&ペーストが利用できるところも多い為、全くのゼロではない。 .NetFrameworkから、.NET Coreへの画面デザインコピーでつまづいた 移行で実際大変なのは、画面デザイン。 ボタンの大きさ、画面の大きさ、位置に、フォントサイズや、フォントの種類・・・と言った事を、いちいちゼロからやるのは、とても大変である。 ところが、試しに、.NetFramework4.7.2から、Core 5で作成したWindowsFormsの画面に、コピー&ペーストで貼り付けようとすると、なんと、貼り付けられなかった。 今後、貼り付け時に変換して貼り付けられる等、改善される可能性もあるが、.Net Coreの登場から5までバージョンが上がっているが、そういった様子もこれまでなかったようなので、画面デザインに関しては、位置やサイズ、カラー等の部分的なところをコピーして、デザイン移行していく事になりそうだ。 画面のボタン配置などを、レガ

C#でクライアント証明書を作成するプログラムコード

イメージ
クライアント証明書をC#を使って作成するコード 今回作成する証明書は、前回、クライアント証明書認証型のWEBサイト構築で紹介した分と合わせると、このプログラムで作成したクライアント証明書を利用した、クライアント証明書認証型のWEBサイトシステムが完成する。 前回のクライアント証明書認証型WEBサイトをC#のASP.NETで構築はここをクリック Bouncy Castleのライブラリを使用したクライアント証明書を作成 Bouncy CastleのライセンスはMIT Licenseが適用されており、著作権表示および本許諾表示をソフトウェアのバージョン情報等に記載していれば、利用方法などは自由で利用しやすいライブラリ。 ライブラリのダウンロードは、Nugetから適用する事が可能だが、本系サイトのBouncy CastleのページからC#ライブラリページをダウンロードした方が、最新モジュールを利用できる為、本家サイトからダウンロードする事が、筆者のおすすめ Bouncy CastleのC#ライブラリページはここ zipの圧縮ファイルを解凍すると、参照設定可能なDLLが利用可能だ。 画面のデザイン 今回は、FrameWorkの4.7.2を利用してみた。 画面には、サーバー側にインポートした証明書が、後から誰の分であるか識別出来るように、フレンドリ名を任意で設定出来るようにだけした、簡素な画面である。 namespace createcert { partial class frmMain { /// /// 必要なデザイナー変数です。 /// private System.ComponentModel.IContainer components = null; /// /// 使用中のリソースをすべてクリーンアップします。 /// /// マネージド リソースを破棄する場合は true を指定し、その他の場合は false を指定します。 protected override void

ASP.NETのでクライアント証明書を使ったログイン認証を行う方法

イメージ
C#言語のASP.NETのでクライアント証明書を使ったログイン認証を行う方法 クライアント証明書認証とは WEBシステムを構築する際に、最初に直面する問題のログイン画面。 クライアント証明書を発行する仕組みについては、別の機会に紹介したいと思う。 C#でクライアント証明書を発行する方法はここをクリック WEBシステムのログイン画面は、一般的なアプリケーションのログイン画面と違い、ユーザーがWEBブラウザにURLを直接入力すると、全ての機能にアクセス出来てしまう為、最初に作成するログイン画面のログイン情報を持ち回り、検証し、アクセスを受け入れるか拒否するか等コントロールを行う為、アプリケーションとは異なりとても重要な機能。 今回はそのなかでも、通所のIDやパスワード、2段階認証とは違った、クライアント証明書認証型のログインをコントロールする方法についての紹介。 個人的には、アプリケーション構築をする事が多い為、WEB系のシステム開発に携わる機会は少ない方なのだけれども、久々に触ったら、.NetFramework、.NET COREと大きく分かれていて、アプリケーションサイドでも、WPFのMVVM型や、いつもの三層モデルに、UWPやら、ますます開発手法の多様化が進み、一体どれを選択するのが正解なのか、ベンダー側の宣伝文句だけに振り回されず選択するのが非常に困難になってきた。 今回紹介するやり方は、Framework4.7をチョイスしてみた。 >.NetFramework4.7は、MVCも混在させる事が容易で、WEBFormを選択時でも、URLに.ASPXと付かないなど、より現代のWEBに最適なWEBシステムの構築が可能で、検索エンジンに最適化したい場合はMVC、WEBシステムに特化した機能を作りたい場合は、システム構築の工数を大幅に削減できるWEBFormを使うと言った事が容易で、とても便利であったからだ。 話を戻して、クライアント証明書を簡単に説明すると、WEBページにアクセスする為に、入館証のようなIDカードを必要とする認証機能の事である。 利用者がWEBページにアクセスすると、WEBサーバー側がクライアント証明書を、利用者側に求めてきて、具体的には、下のような、端末にイン

Kinetone(キントーン)を利用者とシステム管理者の立場で比較考察

イメージ
結論としてはKinetoneはG SuiteやAzureよりもコストセンターになる可能性が高い(?) 利用者側でメリット、デメリットを考察 メリット Googleのスプレッドシートのように、データを共有できる。 有料サービスなので、サポートを受けられる。 ひな型を利用する分には、学習コストがあまり不要な為、始めやすい。 デメリット ただ、データを共有するのであれば、一般企業が契約しているOffice365のWEB版EXCELでも共有できる為、わざわざ同じことをする為に、追加コストを払っている側面も出てしまい、周到な計画で導入を進めないと、本当にただのコストセンターとなってしまう。 Googleやマイクロソフト社も似たような物をKinetoneよりお得なサービスで提供しており、何故Kinetoneなのかが説明出来ないと、経営層へコスト削減につながった説明がしづらくなる。 (経営層のITリテラシーも向上しつつある為、後からOffice365等でも同じことが出来たのではないかと、印象を悪くしてしまうリスクがある。) 基本的にカスタマイズありきなサービスである為、導入後に想定外の開発費用に直面する事が多い。 データ連携などは、Javascriptを利用する必要があり、単純にJavascriptが扱えるエンジニアというより、KinetoneのJavascriptが扱えるエンジニアを抱えるか、外部委託業者に依頼する結果となり、コストパフォーマンスは悪い。 ひな型で済まないカスタマイズが必要な場合、やはりKinetoneのJavascriptライブラリが扱えるエンジニアが必要となり、人件費と学習コストが規模によっては、他のサービスより見合わなくなる。 まとめ 利用者側からいうと、マイクロソフト社のOffice365やAzureを利用したものの方が、いつものExcel、ACCESSといった物が利用出来る為、独特なサービスの操作を覚えるコストと、現状の物が移行出来ないといったシーンに直面する事が少ないと思われ、わざわざKinetoneを利用するといったメリットが無いように思われる。 一番痛いのが、新規アプリを外注する時のアプリが

Lancersの方がCrowdWorksよりも単価がマシな印象

イメージ
Lacers(ランサーズ)の価格がAIで適正化され受けやすい CrowdWorks(クラウドワークス)では数か月掛かる案件で、報酬が数万円だけの案件がズラリと。 Lancers(ランサーズ)とCrowdWorksの案件を見て思うのが、クラウドワークスで出展されている案件のカオスさが目に余る。 特に、数週間かかりそうな案件でも、数万円だけとか、実際に受けてみると、単価数万円のボリュームかと思いきや、数カ月かかるボリュームだったというのも筆者も経験がある。 一度受けてしまうと、お金が発生した契約なので、損害賠償絡みになってしまう恐れもある為、致し方なくやりきる事があるが... クラウドワークみたいな仕事の依頼の仕方が成立して広まってしまうと、日本経済がますます停滞化しかねないな...と、やっていて感じる時がある。 Lancers(ランサーズ)は、依頼する側としかやったことがなかったが、実際に案件を見てみると、価格が適正だ! と感じる事が多かった。 クラウドソーシングはCrowdWorks(クラウドワークス)を主軸にしていたが、2000円未満で日曜日が1日台無しになるボリュームだったとか、殆どいい案件に巡り合えておらず、そもそも、案件の内容を最後まで読んで、文末に~5000円で見積りして下さいとか書かれている物は、読まされる時間だけホントうんざりしてしまうものが多い。 この差は何かとよく見てみると、Lancers(ランサーズ)は、案件の価格が適正か否かをAIが判断しているような仕組みになっているようだ。 AIで価格が適正か否かを判断する事によって、無駄な案件を目にするわずらわしさが無いLancers(ランサーズ)は、案件を読むだけでストレスになるという事が非常に少なくて済む。 発注者によっては、クラウドワークスかランサーズ、どちらかにしか案件を載せていない所もある為、クラウドソーシングを主軸にしている人は、どちらも閲覧する必要が有ると思うが、忙しいタイミングの時には、クラウドソーシングの活用は、ランサーズを主軸にすると、幾分か無駄な案件に巡り合う機会が少なくて済むかもしれないと感じた。 Win-Winな関係が築けるのはLancersが優勢か!?

ACCESSでバーコードスキャンしたら自動でイベントを起こす方法

イメージ
ACCESSでバーコードスキャンをしたら自動でデータベースの登録や検索を行う方法 前回紹介したマクロに、追加する形で紹介しています。 前回:ACCESSでバーコードをスキャンして登録更新する簡単なサンプル バーコードリーダーの機能をまずは確認。 最近のバーコードリーダは、スキャンをした後に<TAB>ボタンのコードを自動で送信してくれるものが殆どですが、高機能なバーコードリーダ程、スキャン後の動作を細かく設定出来るが為、初期はスキャン後に追加のアクションがされていない物がある。 バーコードリーダの設定で、スキャン後に<TAB>ボタンや<Enter>ボタンのコードを細かく設定できる場合はこれを設定しておく。 バーコードスキャン後に<TAB>キーが送信される設定例 、入力ボックス側のイベントの[LostFocus](画像の箇所)に、ボタンを押した時の処理に飛ばすコードを埋め込むだけで、バーコードスキャン後に、自動で処理を行う事が出来ます。 Private Sub Bar1_LostFocus()                  Call Button1_Click End Sub

ACCESSでバーコードをスキャンして登録更新する簡単なサンプル

イメージ
ACCESSでバーコード値等をスキャンや入力して、テーブルに登録、検索、更新する方法。 テーブルの内容 Bar = バーコード値等 FillingDate = スキャンした日付 (登録ボタンを押した日付) フォーム テーブルのBar値に登録が無い場合、フォームに入力された値と、今日の日付を登録 フォームに入力された値を、テーブルのFillingDateから検索し、登録された日付を表示 フォームに入力された値を、テーブルのFillingDateから検索し、FillingDateにボタンが押された日付で更新 ソース aOption Compare Database '① Start ------------------------------------------------------------------- Private Sub Button1_Click()     If Bar1.Value = "" Or IsNull(Bar1.Value) Then         MsgBox "入力してください。"         Exit Sub     End If     Dim sql_con As New ADODB.Connection     Dim sql_rs As New ADODB.Recordset     Dim sql_cmd As New ADODB.Command     Dim sql_prm As New ADODB.Parameter               Set sql_con = CurrentProject.Connection     '既存チェック     Dim sql As String          sql = ""     sql = "SELECT COUNT(*) FROM [Data] WHERE Bar = :Bar1"     sql_cmd.CommandText = sql     Set sql_prm = sql_cmd.CreateParamete

税金を払うのが段々バカバカしくなる出来事集

最近の状況と報道、現実に起きている事を目の当たりにして、税金を払う意味が見当たらなくなってきた。 石原伸晃氏の入院に疑念の声「なぜ無症状で」 野党議員:東京新聞 TOKYO Web https://t.co/AGYMMAGSxr — 東京新聞政治部 (@tokyoseijibu) January 26, 2021 今、病院で風邪の症状すらまともに診てもらえない状況で、政治家や公務員、税金を搾取している側だけが受けられる診療。 これはひどいウソ pic.twitter.com/Z8bEXJYy2X — 君に届け!滑稽新聞 (@akasakaromantei) January 14, 2021 国家レベルの詐欺行為だと思うが何故逮捕されない?それとも、政治家や公務員全員が詐欺推奨? #日本のコロナは自民党の人災 国民はこれを決して忘れることはないだろう。そしてこの対応の差も pic.twitter.com/CpQ0bBShdP — 君に届け!滑稽新聞 (@akasakaromantei) November 18, 2020 コロナ渦で大勢の国民がリスクと隣り合わせで働く中、自分だけ家で税金で食べている癖にくつろぐ首相。 よくある、自分だけ安全地帯であぐらを組む悪代官そのもの。 サービスデザイン推進協議会の代表理事が「私は飾りです」と言い切っっちゃたのすごい。 pic.twitter.com/AkzkpxNA2d — れもんた (@montagekijyo) June 3, 2020 やっぱり実態なし。給付金の受託法人の事務所は報道公開の翌日、また無人になっていました。実態があるかのようなパフォーマンスだったことが明白に。 https://t.co/JkmYKS8ZgL — 東京新聞編集局 (@tokyonewsroom) June 11, 2020 これ犯罪じゃないの? コロナ渦を利用して、税金を懐に入れる為の事業? 何事も無くスルーされているのが不気味すぎる。 おれらの政府… このバランス感… 頭イカれてる… pic.twitter.com/5YbW0KGHIw — 古舘寛治Kanji Furutachi (@Mkandhi091) April 22, 2020