@ポケじゃらし

音楽ゲームとかボーカロイドとか

【ExcelVBA】Debug.Printのいろいろな使い方

どうも、じゃらしです。

今回もExcelVBAネタです。

ExcelVBAでデバッグ表示をしてくれる「Debug.Print」というメソッドがあります。
実行すると、イミディエイトウィンドウ(VBAの右下)に任意の文字列を表示してくれます。

UNIXコマンドの「echo」、COBOLの「DISPLAY」、Javaの「System.out.println」にあたるものです。

いろんな使い方をまとめてみました。

Sub test()
  Dim hoge As String
  Dim fuga As String
  Dim piyo As String
  
  hoge = "ちくわ"
  fuga = "はんぺん"
  piyo = "たこわさ"
  
  'リテラルの表示
  Debug.Print "鏡音レン"
  
  '変数の値を表示
  Debug.Print hoge
  
  '変数とリテラルを組み合わせる
  Debug.Print hoge & "がたべたい"
  
  '空白表示
  Debug.Print:
  
  '間隔を開けて表示
  Debug.Print hoge, fuga, piyo
  
  '改行なしで表示
  Debug.Print hoge;
  Debug.Print fuga;
  Debug.Print piyo;
  
End Sub

↑を実行すると、↓が表示されます。
f:id:twitpokej:20200204010645p:plain

以上、それではまた。

ExcelVBAでテキストファイルを読み込んでみる

どうも、じゃらしです。

引き続きExcelVBAのネタです。

前回はExcelVBAでテキストファイルを作成しました。
twitpokej.hatenablog.com

今回はテキストファイルを読み込んでみます。
前回と同じく「FileSystemObject」と「TextStream」というオブジェクトを使用します。
参照設定の方法については↑の過去記事をご覧ください。

読み込み用のテキストファイルを用意しておきます。
f:id:twitpokej:20200201222747p:plain

f:id:twitpokej:20200201222806p:plain

Sub test()
  Dim fso As New FileSystemObject
  Dim ts As TextStream
  
  Dim filePath1 As String
  filePath1 = "C:\wk\test.txt"
  Set ts = fso.OpenTextFile(filePath1, ForReading)
  
  '一行ずつ読む
  With ts
    Do Until .AtEndOfStream
      MsgBox .ReadLine, Title:="test"
    Loop
    .Close
  End With
  
  Dim filePath2 As String
  filePath2 = "C:\wk\test2.txt"
  Set ts = fso.OpenTextFile(filePath2, ForReading)
  
  '全行一気に読む
  MsgBox ts.ReadAll, Title:="test2"
  ts.Close
  
End Sub

f:id:twitpokej:20200201223736p:plainf:id:twitpokej:20200201223948p:plainf:id:twitpokej:20200201224000p:plainf:id:twitpokej:20200201224013p:plain

f:id:twitpokej:20200201224033p:plain

「FileSystemObject」には、テキストファイルを開くメソッドとして「OpenTextFile」が用意されています。
ファイルを開いた後、テキストを読み込むために「TextStream」のメソッドを使用します。
今回は、以下のメソッドを使用しました。

  1. ReadLine -文字列を一行読み込む
  2. ReadAll -文字列を全行読み込む

一行ずつ読み込んで処理をさせたい場合は「ReadLine」
一気に読み込んでも問題ない場合は「ReadAll」の方が高速です。

以上、それではまた。

ExcelVBAでテキストファイルを出力してみる


どうも、じゃらしです。

今回はExcelVBAのネタです。
ExcelVBAでテキストファイルを作成してみます。

今回のキモは「FileSystemObject」と「TextStream」というオブジェクトです。

これらのオブジェクトを使用するため、コーディングする前に参照設定で「Microsoft Scripting Runtime」にチェックを入れておきましょう。
f:id:twitpokej:20200130224945p:plain

ここでは、テキストファイルを新規に作成してみます。

Sub test()
  Dim fso As New FileSystemObject
  Dim ts As TextStream
  
  'テキストを作成する場所
  Dim filePath As String
  filePath = "C:\wk\test.txt"
  
  'テキストファイルを作成して編集する
  Set ts = fso.CreateTextFile(filePath)
  With ts
    .WriteLine "Write Line"
    .WriteBlankLines 3
    .Write "Write"
    .Close
  End With
  
  Set ts = Nothing
  Set fso = Nothing
  
End Sub


↑のスクリプトを実行すると、↓のテキストファイルが作成されます。

f:id:twitpokej:20200130230111p:plain

「FileSystemObject」には、ExcelVBA上でファイルやフォルダを操作するメソッドが用意されています。テキストファイルを作成するメソッド「CreateTextFile」を使用しました。

また、テキストファイルを扱うオブジェクトとして「TextStream」が登場します。
「TextStream」には、テキスト行を読み書きするメソッドがいくつか用意されています。
今回使用したメソッドは

  1. WriteLine -文字列を書き込む(改行あり)
  2. WriteBlankLines -指定した数だけ空白行を書き込む
  3. Write -文字列を書き込む(改行なし)
  4. Close -テキストファイルを閉じる

でした。

以上、それではまた。

【ExcelVBA】便利なオブジェクト群

どうも、じゃらしです。

 

今回は記事ですらないかもしれない。

 

VBAでこんなことあんなことするには、どんなキーワードで検索すればいいんだ!って人向けに、自分がよく使う便利なオブジェクト群を置いておきます。

 

ListObject

・テーブル操作


QueryTable

・txt、csvの取込


DataObject

クリップボード操作


Dictionary

連想配列


FileSystemObject

・ファイル、フォルダの操作


RegExp

正規表現の検索、置換


ADO

Excel上でSQL文実行

 

以上

【Apex Legends シーズン3】ブラハ「おやつは300円まで」【ファーム】

ライフライン「先生、バナナはおやつに入りますか」

カラス「カァーーーwww」

 


はい、じゃらしです。深夜テンションではありません。


今回はApex Legendsのお話です。

自分の備忘録も兼ねて、Apex Legends初心者向けの記事を書きます。

 


序盤で運良く敵のいない場所へ降りたったら、まずファームをすると思います。

自分の場合、ファームをしているとしょっちゅうバックパックからアイテムが溢れてしまって、あたふたしてしまうことが多いです。

また、途中で武器を変更したりすると、運良く手に入れたレアアタッチメントを手放すかどうかで天秤に掛けて悩んだり…などなど。

 


そこで、より手早くファームできるよう以下の3つについて考えてみました。

ちなみに、自分はライフラインを頻繁に使うので、その辺りも意識していきます。

 


①自分の使いたい武器を決める

②取捨選択の原則を決める

③各場面における理想の手持ちをイメージする

 

 

①自分の使いたい武器を決める

自分の場合

・R-301やフラットラインが好き

・R-99やスピットファイアもまあ好き

・ディヴォージョン、ピースキーパーは一応持てる

 

 

②取捨選択の原則を決める

・アタッチメントはバックパックに入れず、極力武器に付ける。ライトアモならオルタネーターやG7スカウト、ヘビーアモならプラウラーかヘムロックに付けておいて、メイン武器を見つけたら取り替える。

・ホップアップは、ディヴォージョン、ピースキーパー用にターボチャージャーかチョークどちらか確保しておいても良い。無理に持つ必要はない。

・アンビルはぶっちゃけ使ってないから譲ってもいい。

・リング外ではヘルスドローンが使えない仕様になったので、リングの位置によっては注射器をスタックしておく。

・金ボディシールド(回復アイテム高速化)の効果は、ライフラインのパッシブと重複しない為、味方に譲る。金バックパック(味方蘇生時の体力シールド増加)は、蘇生が早いライフラインにとって恩恵があるので積極的に担ぎたい。

 

 

 

③各場面における理想の手持ちをイメージする

 


序盤(バックパックなし 容量8)

・武器の弾*3

・拡張マガジン

・アタッチメント(紫のみ)*1〜2

・シールドセル

・注射器

拡張マガジンだけは拾っておく。あとはオルタネーターとかに付けられなければ無理に持って行かなくても良さげ。序盤はリング際で物資も漁る機会もあるので、注射器は1スタック持っておく。投げ物はいらない。

 

中盤(バックパックlv1 容量10)

・武器の弾*4

・シールドバッテリー

・シールドセル*2

・医療キット

・投げ物*2

ある程度武器と物資が整って来たら、もうアタッチメントはいらない。物資を整理して注射器を医療キットかフェニックスキットに替えたい。アーマー回復に関して、戦闘に備えてシールドバッテリーだけで無くシールドセルも多めに持っておきたい。ぼちぼち投げ物も拾う。

死体箱を漁る機会があれば、バックパックの容量と理想の手持ちを意識して手早く漁る。

 

終盤(バックパックlv2 容量12)

・武器の弾*4

・シールドバッテリー

・シールドセル*2

・医療キット

・フェニックスキット

・投げ物*3

シールドバッテリーと投げ物でバックパックの空きを埋める。あとは最後まで頑張る。

 


以上、それではまた。

サクラエディタにjavacさせる機能を追加してみる

どうも、じゃらしです。

今回はプログラマーネタです。
.bat経由でサクラエディタ上で.javaコンパイルする機能を追加してみます。

早速ですが、ちゃちゃっと本題行きます。

~全体の流れ~

  1. コンパイル用のバッチファイルを作る
  2. サクラエディタのマクロファイルを作ってバッチファイルを呼び出す
  3. マクロファイルをサクラエディタに関連付ける

[前提]

JDK(Java Development Kit)導入済みであること

javaファイルをコンパイルするためには必要です。
OracleのHPからDLしてインストールしておきましょう。

環境変数%path%にjdkのパスが設定されていること

分からなければ「環境変数 java」でググれば出てきますのでここでは割愛。

[本題]

1.コンパイル用のバッチファイルを作る

コマンドプロンプトで.javaコンパイルするには

>javac Hoge.java

と打てばコンパイルできますよね。
この命令をバッチファイルにやらせます。

@echo off
javac %1

このバッチファイルを実行させるときに引数としてファイル名を渡すと、
%1に値が入ります。

2.サクラエディタのマクロファイルを作ってバッチファイルを呼び出す

サクラエディタにはキーマクロという機能が備わっています。
先ほど作成したjavac.batを実行させてみましょう。

FileSave()
ExecCommand('C:\○○○\javac.bat $f', 1)

1行目では、現在開いている.javaを上書き保存させます。
2行目では、javac.batに$f(ファイルのフルパス)を引数として与えて実行させます。
カンマ以降の数字は、ExecCommand実行結果をサクラに出力するか否かのパラメータです。
1(出力させる)を指定することで、コンパイル結果をテキストで確認できるようになります。

3.マクロファイルをサクラエディタに関連付ける

サクラエディタにキーマクロを登録していつでも実行できるよう関連付けの作業を行います。
設定→共通設定→マクロ
javac.macが保存されているフォルダを選択、適当なマクロ名を付けてjavac.macを選択、設定したら終わり!
後は、サクラエディタjavaファイルを編集したら
ツール→登録済みマクロから実行 でコンパイルできるようになります。

実行例

コンパイルエラー

f:id:twitpokej:20190919221251p:plain
f:id:twitpokej:20190919221308p:plain

職場が閉域ネットワークでeclipseできるようなスペックのパソコンもないけど、内職でじゃばじゃばしたい~みたいな人種には需要があるかもないかも、というお話でした。

以上、それではまた。

じゃらし最強コンテンツ環境まとめ(2019/06/17)

どうも、じゃらしです。

 


僕が今現在進行形でハマっているコンテンツの一覧を残しておこうと思い、本記事を書きました。

 


普通に書いても味気がないので、ゲーム系まとめで良くあるTier形式で紹介します。

※カッコ内は先月のTier

 


——————————

Tier1

スプラトゥーン2(新)

 


Tier2

SOUND VOLTEX(1)

ポケモンGO(ランク外)

ベンチャーズ(2)

 


Tier3

お絵描き(ランク外)

DTM(2)

 


——————————

 


まず先月からの環境変化だが、先月始めたスプラトゥーン2が初登場にしてTier1という快挙。

そして、2016年10月以降環境から姿を消していたポケモンGOがTier2で復帰した所もポイント。

 

 

 

《Tier1》

 


スプラトゥーン2】新規→Tier1

環境トップ。今期覇権。

・近況

エリアとヤグラがA-に上がった。アサリはわけわかめ。サーモンランはステージの予習をしながら1200P目標で頑張っている。

武器については、最初パラシェルターを使っていたが、サーモンランで活きるスプラッシュボムを使い慣れるため、わかばに持ち替えて現在まで使用中。

・今後

エイム練習になりそうなZAPに手を出したい。

ホコをA-に上げたい。

 


《Tier2》

 


【SOUND VOLTEX】Tier1→2

スプラトゥーンがTier1になったが、ボルテ単体では現状維持。

・近況

18低難度のS埋め中心。ペースは週1〜2くらいで毎回10クレくらい。モチベが保つくらいにはスコアが少しずつ出て嬉しい。

・今後

スタンプボーナスでかわいい雷刀くんが手に入るので頑張る。

将来的にVFを上げられるように、18中上位の平均を上げて19のスコアアップに繋げたい。

 


ポケモンGO】ランク外→Tier2

最近他のスマホゲームを全くやらなかったため、一気に環境入り。

・近況

スマホのスペック上の問題から辞めていたが、iPhone8に換えたので再開。再開時にボックス700道具1000まで拡張のために課金し、モンスターボールPlusを購入。(購入翌日にポケモンGO Plus+が発表)

現在ランク32。2週連続で50km達成。

・今後

ちまちまやる。50kmはもうしばらくやらない。

 


ベンチャーズ】Tier2→2

ほぼ1年現状維持。

・近況

Amazon Unlimited Musicに加入したため、膨大な生音源を聴き漁る事が出来るようになった。

・今後

特になし。聴き漁るのみ。

 

《Tier3》

 


【お絵描き】ランク外→Tier3

たまにランク入りする。

・近況

少し前に開催されたボルテアピカコンに初投稿した。

・今後

創作キャラを描き直したい。

 


DTM】Tier2→3

モチベDownによりTier3へ。

・近況

先月新曲を上げてからもちまちま触っているが作品になる前に空中分解している。そろそろ何か作らねばという気持ちで焦っている。

・今後

モノでモチベ釣る戦略で夏セール狙うのはありかもしれない。鏡音ことはに向けてモチベを上げていきたい。

 


以上、書くのに結構疲れたので多分来月は書きません。

 


それではまた。