投稿

Translate

優秀なITエンジニア程早い失業が訪れる

プロジェクトの完了日は失業までのカウントダウン プロジェクト選びは慎重に IT関連の開発プロジェクトは、基本的に終了日が設定されている。 本来、開発が計画通りに進むという事は、優秀なエンジニアによって実現されている訳だが、優秀であればある程早く失業する。それが、日本のIT業界の構造だ。 基本的に常駐型エンジニアの場合、正社員であって、派遣であっても、次の常駐先が決まらなければ失業となる。 正社員の場合は、3ヶ月の猶予がある場合が多いようだが。 短期の案件だった場合には、次の案件を探す目処が付きやすいが、短期の筈が、延長が続いたり、そもそも長期だった場合には注意が必要だ。 常駐先や、派遣先を紹介した元は、例え終わりが予定されていても、延長や継続の可能性があるとみなして、完全に終了するまでは次の案件を探してはくれない。 こちらが意向を示した場合でも、探してくれているフリはするが、実際は紹介しない。 どういった、対策が取れるかというと、紹介元の企業とは、違う企業の案件に申し込んで案件を獲得するという方法だ。 人さえ入れれば利益が増える紹介元の別企業は、積極的に営業をしてくれる。 もしも、プロジェクトの終わりが見え始めているなら、プロジェクトの完了まで献身的に関わるよりも、次の案件を探しておかないと、プロジェクト完了時の経済状況が不景気だった場合は、失業状態が長引く可能性があり要注意だ。 次の案件探しはお早めに!

EXCEL-VBAでやってはいけない処理速度改善方法

イメージ
配列化しても処理速度が落ちてしまう実装方法 折角配列化して処理速度改善を行っても、処理速度が改善しなくなる処理 図のように、配列化しても、データ取得の特定のデータに行きつく為に、アクセスを判別する処理が、毎回必要とする処理を実装してしまうと処理速度が大幅に落ちてしまう事がある。 データベースのようにインデックス化されたデータベースから引用する場合には問題ないが、Excelシートの情報をそのまま配列化した場合に、データベースのようなアクセス方法で実装してしまうと、処理速度の改善がされない場合がある。 何故なら、特定のデータにアクセスする為に、毎回全件データを走査していく必要があるからだ。 Excelシート情報を配列化した処理で、処理速度改善を実現する方法とは? 何も事前処理されていないExcelシートの情報をそのまま配列化して、特定の加工を施し、データを転記する場合、加工の為に配列化された情報か特定のデータに辿り着くまで毎回アクセスする必要が出てしまい、この特定のデータに辿り着く振る舞いを、1万件、2万件のデータで行うと、少量では気が付きにくかった処理時のオーバーヘッドが積み上げられ、非常に遅くなってしまう結果となる。 処理に必要なデータ順に並び替え、特定のキーが変わったら(キーブレイク)したら、次種類のデータとなったと判別するようにすると、データアクセスの度に全件アクセスを行う必要が無くなり、処理速度がかなり改善される。 配列化されたデータアクセスの処理改善まとめ 処理の度に、毎回全件データアクセスを必要とする構造を廃止し、処理が必要な順にデータを並び替え、データの上から順に一巡するだけで処理が完結する構造とすると、処理速度が随分改善する。 数十分単位だったものが、数秒で終わるケースもこれまでに経験しており、処理を便利に高機能にしたいと走ってしまった場合、大量のデータに遭遇した場合、処理速度の問題にぶつかるであろう前に、ユーザーエクスペリエンスを優先させるかを事前によく検討した方が良いと思われる事案の一件を紹介しました。

Excel VBA クリップボードを使用しないコピー方法

イメージ
通常のコピーを使用しないセルのコピー方法 Copyを使用しないセル値のコピーや転記を行う方法 EXCELのVBA(マクロ)でクリップボードを使用した実装を行うと、マクロ実行中に他の作業で、コピー&ペースト等を行うと正しく動かなくなる場合がある。 もう一度マクロを実行し直すか、マクロ実行中は操作を控えるかの選択となるが、マクロを使用するユーザーが、マクロ作成者であれば回避も可能だが、そうではない他のユーザーが利用する場合、意図しない動作をしてしまう場合がある。 セルのコピーは、Copyメソッドを利用しない転記方法もある為、今回はクリップボードを使用しない方法で、セルの範囲をコピーする方法を紹介 この方法は、クリップボードが使用されてしまう。 Range("B3:D7").Copy Range("B10:Z13").PasteSpecial Paste:=xlPasteAll 実行結果 Value(XLRangeValueXmlSpreadsheet)を使用すると、クリップボードは使用されない Range("B10:D13").Value(xlRangeValueXMLSpreadsheet) = Range("B3:D7").Value(xlRangeValueXMLSpreadsheet) 実行結果 実際にクリップボードの使用、不使用を確認したい場合は、メモ帳などで、文字をコピー後、マクロを実行し、メモ帳で、貼り付け(ペースト)を行って、コピーした文字が貼り付けば、クリップボードが使用されているかいないかが確認出来る。 クリップボードの使用をマクロで実行している場合、貼付け時に、マクロでコピーした内容が貼り付けられたり、コピーしたクリップボードの内容がクリアーされている事が分かる。

Googleのアカウントは携帯を解約すると二度とログイン出来ない

イメージ
スマホ解約時はGoogleアカウントの情報は全て退避した方がよさそう 無限ループのアカウント復旧プロセス スマホ解約後、パソコン版Chromeでログインしようとすると、ログインにたどり着けなかった。 この段階で、利用していたスマートフォンの電話番号当てに、SMS通知で認証コードが飛ばす為の画面が表示されるが、スマートフォンは契約(解約した)していない為、別の方法を試す事になる。 その後は、「本人確認のための追加情報が必要」と表示され、またログインパスワードの入力画面から繰り返し、ログイン出来なくなる。 もしもスマートフォンの解約を行おうとしている場合、Googleのアカウントにスマートフォンの電話番号が紐づいている事が殆どだと思われる為、注意が必要だ。

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万円と固定で書かれている。 こういう姑息な真似をするクライアントは、実績作りで付き合っていても酷い目に合うだけなので、辞退する方が良い。 案件の詳細は、一番最後の方から読み、見積り金額が固定で書かれていたら、即スルーが時間の節約になる。 契約前に詳細な提案が必要な案件に利用されるな! 企業に対面で提案を求められている場合と違い、ネットでの募集案件で事前に細かい提案書や、内訳を求めてくる場合、大抵の場合、無料で