自分用のメモです。

C# 超手軽なスクレイピング

C#スクレイピングをしようと思えば、普通は便利なライブラリを使用すると思う。

しかし、私は馬鹿なのでライブラリを理解してない。それなのに、スクレイピングをしたくなった。簡単にする方法があったので紹介する。

私のwindowsfoamappで使用したusing

using System;
using System.Windows.Forms;
using System.IO;
using System.Net;
using System.Text.RegularExpressions;

 

int i_data = new int [10];
string
s_data = new string [10];
char[] del = { '<', '>' };
string s_url = "(取得したいURL)";
WebClient wc = new WebClient();
StreamReader sr = new StreamReader(wc.OpenRead(s_file));
{
    for(int i = 1; i<= 35; i++)
    { sr.ReadLine(); }

//36行目の数字を取得
    data[0] = int.Parse(Regex.Replace(sr.ReadLine(), @"[^0-9]", ""));

    for (int i = 37; i <=110 ; i++)
    { sr.ReadLine(); }

//111行目の文字を取得
    s_data = sr.ReadLine().Split(del);
}
    label1.Text = i_data[0];
    label2.Text = s_data[2];

 

今回の場合

htmlの36行目が、

<p class="progress_icon_b" id="item">1600体</p>

ならば、label1には"1600"が表示される。

htmlの111行目が、

     <p class="rank">52位</p>

ならば、label2には"52位"が表示される。

 

htmlの形式が変わらないログイン認証もない簡単なhtmlであれば、これを応用することで簡単にスクレイピングができると思う。行数はhtmlをDLして行番号付きのエディターで開くと簡単にわかる。

ほかのよりごちゃごちゃしてるのかもしれないけど、簡単じゃない?これを思いいたので、今後は簡単なスクレイピングはやりやすいと思うのでメモとして残しておく。

【GAS】Googleスプレッドシート

GAS……Google Apps Scriptの略。Googleのシステムを自動化したいときに便利。基本的にははJavaScriptと同じ。

GASはとても便利なんだけど、検索しても欲しいオブジェクトが見つけられなかったので書き残す。

今回、私が作成したのは、Googleスプレッドシートでカスタム関数を作成しました。

カスタム関数っていうのはマクロみたいに自分の好きな動作をする関数を作れるという機能です。また、エクセルのマクロと違って、パソコンで作成しておけば、スマホタブレットからも簡単に使えるところが魅力的ですね。

私もタブレットからめんどくさい作業をするのは嫌なので自動化を図ってみた。
GASについて検索するとやり方自体はいっぱい出てくるから割愛するね。

Excelの関数にSUMIF()ってあるよね。条件に合致したものを足してくれる機能。
今回、足したいのは数字じゃなくて文字列を結合したい。
用途としては、条件に合う人の名前を全部書き出して欲しいと思ったんだ。

ひとことでいうと、SUMIFの文字列版です。

SUMNAMEIF(検索範囲x,"条件y",合計範囲z)で指定して使います。

検索範囲から条件に当てはまるものの合計範囲の文字列を結合します。

 

function SUMNAMEIF(x,y,z) {
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    var a = sheet.getRange(x).getColumn(); //検索範囲の列番号
    var b = sheet.getRange(z).getColumn(); //合計範囲の列番号
    var c = sheet.getRange(x).getRow();    //検索範囲の行番号
    var d = sheet.getRange(z).getRow();    //合計範囲の行番号 
    var e = sheet.getRange(x).getNumRows();//検索範囲の行の数
    var name = "";
    for(var i = 0; i < e; i++ ){
    if(sheet.getRange(c + i, a).getValue() == y){
        name = name + sheet.getRange(d + i, b).getValue() + "、";
        }
    }
  return name;
}

 

とにかく.getColumn().getRow().getNumRows()が見つからなくて悪戦苦闘。

VBAと似てるだろうと思って、getRange()オブジェクトのプロパティを探してたのに,getColumn()もオブジェクトらしい。最後に()が必要なんてわからなくて、面倒でした。

getRangeを見たときにColumnで無理だったから、getColumnだろう!まではいってたのになぁ(苦笑)

カメラアプリの比較

最近インスタ〇が流行していて、それに伴い、物品の撮影や地鶏をする人が格段に増えている。

インスタントの豚骨ラーメンおいしいよね

そこで簡易的ではあるが、iPhone6sのアウトカメラにて、代表的な4つのアプリで比較を行ってみた。

①純正アプリ

f:id:bulletscizor:20170805171501j:plain

②SNOW

f:id:bulletscizor:20170806010010j:plain

③LINE Camera

f:id:bulletscizor:20170806010039j:plain

④B612

f:id:bulletscizor:20170806010106j:plain

いかがだろうか?

すべてアプリの初期設定のまま撮影をしているハズだwww

①純正アプリ が一番画質はきれいである。しかし、汚れも目立つ。

また、撮影音が消せないので、飲食店などでは気軽に使えないだろう。

②SNOW 自撮りアプリとしては超有名アプリ。仕上がりとしては自然な感じできれいに加工といったかんじだろうか。かなりいろんな場面で使えそうだ。

③LINE Camera 撮影した写真を複数枚合成することも可能。現実をそのまま映し、無音でとりたい人には便利だと思われる。

④B612 SNOWより盛れるため、加工されている感が半端じゃない。加工してでもきれいに撮りたいという人にはうってつけだろう。また、初めからズームされている。

 

それぞれ適材適所で使い分けると便利だなぁ~って思いました。他にもいろんなアプリがあるので試してみたくはなったよね。

結論:どれで撮影してもワンちゃんとリラックマはかわいい!!

異論があっても私には言わないこと。

SurfacePro4 2カ月?レビュー

あけおめです!

あまり使えてないので少し過ぎてますが2カ月レビューということにします(笑)購入1か月後に画面の保護シートを購入しました。

レイアウト rayout RT-SPRO4F/A1 [Microsoft Surface Pro 4用 光沢・防指紋フィルム]

一カ月使って傷ついた訳ではないのです。少し、不安になったので購入しました。もし、使いにくい時は傷を気にせず剥がして、捨てるつもりなので、安いやつにしましたw(ガラスならそのまま使えたかもしれないなんて言わないで( ̄^ ̄)ゞ)

 

・画面

フィルムを貼るとやはりペンは使いにくくなりました。そのほかの操作には全く支障がありませんでした。フィルムを貼るのは画面が大きい分ずれるのでとても難しいです。
1か月使用後に貼ったのですがほぼほこりなどは入りませんでした。画面の枠部分を妥協したのでこのように書かせてください。

・アクセサリ類

前回も書いていたが、やっぱり私の身の回りでミニディズプレイポートは使いにくかった。surfaceドックにもHTMLの出力端子はないので変換ケーブルを買うのが得策だと考え変換ケーブルを購入をした。surfaceドックを必要とする人はいるのか?と感じた。

 案外USB端子が一つは全く問題なく、むしろクラウド管理をするようにしたのでUSBなんて使わなくなった印象かな。(マウスもBluetoothのものにすればUSBも使えて最強ですね。)

 

・不満が解消されたこと 

顔認証だが、認識精度を高めまくる事でかなり反応するようになった。手順としては初めはメガネをかけて認識させ、メガネをかけて認識精度を高める。また、よく使う場所で認識精度を高めたほうが素早く認証できる。光の当たり方次第では認識しにくい事があるからだ。ただし電車などで日光が差し込んでるときは認証できなかったヨ。

やはり、ペンについては慣れていなかっただけで、とても使いやすい。ただし、Office系ソフトを起動中は要注意。ペンで書き込みが出来てしまうので、意図しないタイミングで書き込まれる事がしばしばある。私用なら良いが提出するものについてはペンを使わずに作成した方が不安がない。

 

・見えてきた別の利点

布団での利用に適していると思った。普段ふとんでPCを利用しているとキーボード部分にCPUがあり布団の効果でどんどん熱くなってくる。しかしsurfaceの場合ディスプレイ部分にCPUがある。布団に触れるのはキーボード部分のみでCPU部分は触れない。すなわちしっかりと排熱ができるのだ。それにひざをスタンドではさむことで下を向かなくても使える。これは今までのノートパソコンになかった利点である。

f:id:bulletscizor:20170117021128p:plain

↑イメージ画像

 

また、電車の中での利用はかなりしやすかったのである。

人が多めなときはタブレットとして使うと今までのPCより使いやすい。

人が少ない電車では膝の上のカバンにスタンドではさんで使うと使いやすい。

また、電池の持ちもかなり良好である。外で使う機会があったのだが、個人的には十分すぎるほど電池はもった。バッテリーの充電速度もとても速かった。

・ブラウザについて

chromeは使いにくくなります。Edge を使いましょう。IEと違いEdgeはchrome以上に速度が速い感覚。ただしchromeよりメモリは食われます。surfaceにとってEdgeは神ブラウザでした。MSが設計してるのでMS製品とは相性抜群ですね。

 

1か月後に書こうとしてたのだがあまりにPCをいじってなかったのと、忙しくて2か月後になりました。まだ書き忘れてそうですが寝かせると半年後になるのでこのあたりで公開しておきます。

 

そういえば昨日surface値下げしたっぽいですね(涙)(マイクロソフトのメールしか見れてない)

Surface Pro 4 感想

少ない種類のノートパソコンしか使ったことがないので、参考になるかはわかりませんが、

個人的感想として書こうと思います。

 

今回購入したのは、

surface Pro 4

Intel Corei5 (第6世代)メモリ8GB SSD 256GB

のもの。

今まで使ってたのは

Corei5 (第3世代)

メモリ 8GB 4GB二枚挿し

HDD 約750GB 。

 

・画質……すごいきれい(解像度が高い)。

タッチペン……とても反応がいい。かなりペンを早く動かしてもしっかりついてきて反応してくれる。タッチペンを使ってる時に手首などを画面に手をつけてもちゃんと反応しない。ただ、ソフトによってはペンの力?角度?によってあまり反応しないこともある。(うる覚えだが、ペイントでは反応するのに、ワードでは少し反応しにくい印象。)

慣れてない為、ペンのボタンを押しながらタッチが難しい。ボタンをもう少し弱い力で簡単に押せるようになってほしい。

ペンは左でも右でもピタッと本体にくっつく。

・手のタッチ操作……スムーズな反応をする。

・処理速度……これは前のパソコンとそこまで変わらない印象。パソコンの進化のスピードが遅くなってきたね。

・タイプカバー(キーボード)……打感は平らにしてやると個人的には普通。画面にくっつけるとタイプ時に少したわみ、打ちにくさを感じることも。キーストロークは浅いので嫌いな人には向かないかも。タッチパッドも反応が良くて使いやすい。(前のパソコンはゴミ(ちなみに白ゴマw)が溜まってて使いにくい。)

タイプカバーは黒を買った為、指紋が目立つ。

即使い込んでます!感が出てしまう。

また、キーボードにはバックライトが搭載されており暗所での使用も可能。明るいところでは光ってるのかどうかもわからない程度だが辛いところだと十分光っている。

f:id:bulletscizor:20161108003130j:image

なお、上記画像のディスプレイは明るさを最低まで落としている。

 

・充電ケーブル……長さは少し短めの印象。その代わり、本体とはマグネットで接続なので外れやすいが、コードに足を引っ掛けても本体が落ちないと意味なのだろう。利点だと捉えている。

また、ケーブルに充電用のUSB端子があるのでパソコンのポートは埋まらない。

・拡張性……充電ケーブルにUSB端子があるとはいえ、本体に2つ端子があるとやはり便利だったのでは。個人的にはミニディスプレイポートよりHDMIが良かったがライセンス料やロゴを入れる時のデザインを考えてかなぁ?MicroSDカードのスロット位置がわかりにくくスタンドの後ろ。不意の事故で落ちないので安心だ。

・その他……スタンド式のためパソコンを置く時に思ってるより幅を取る。よって電車ではタイプカバーを使用した入力は難しい?スタンドは無段階調整でほぼ好みの角度に調整可能。

イヤホンジャックは3ピン端子マイク付きイヤホンが使えた。

カメラはかなり高画質に思えた。Windows Helloも素早く反応。メガネを外すと反応してくれない。(ちなみに私はリアルでもメガネを外すと知り合いに気がつかれませ(´・_・`))

外で長時間電源なしで使う機会はあまりないので、(普段、使っても2時間ほど)電池の持ちはわかりません。

 

拡張するなら……家で使う時マウス、サブモニター、キーボードなどはBluetooth接続のものを使用するとめちゃくちゃ快適そうだがそこまでするまでもないと思う。外でタイプカバーやタッチペンを必要とするかどうかは作業内容や個人差がある。

 

ベンチマークなどはググればあると思うので、割愛で。人によって感覚が違う部分だけ書いたつもりです。

 

その他質問等があれば、コメントやTwitterへどうぞ。店頭の展示品をじっくり眺めるのが一番わかると思いますぞ!

 

Surface Pro 4 開封の義

注意:レビューなどの内容ないよー!(たぶん、今度)

今まで使ってたパソコンがちらほらブルースクリーンが発生するようになって、、、

f:id:bulletscizor:20161106162941j:image

ついに購入して貰った。

!!!Surface Pro 4 !!!

それと

f:id:bulletscizor:20161106163049j:image

タイプカバーブラック

開封すると

f:id:bulletscizor:20161106163615j:image

いやー、少しAppleの梱包に近いところありますね。こちらは上が紙(ダンボール?)で覆われてましたが。

本体を取り出すと

f:id:bulletscizor:20161106163927j:image

ペンと説明書。

iPhoneでいうイヤホンと説明書の感覚。

 

繋げてみると

f:id:bulletscizor:20161106164145j:image

こんな感じ。すばらっすねぇ。

 

梱包記録&購入報告みたいな感じでした。

 

 

税金を払いたくない

また、放置w

まぁ、続かないのは諦めてるんだけど、広告回避用に時々小ネタを投下しようと思ってます。

 

タイトル通り今日は税金のおはなし

 

税金って高くて払いたくないですよね。でも大半の方は、仕方なく会社に天引きされることで払ってると思います。会社だって税金は払いたくありませんが、仕方なく払っています。

本音を言うと税金払いたい人は個人でも企業でもいません

 

しかし、個人も企業も税金を払うことで国家サービスを提供して貰っています。身近なものだと道路とか治安維持とか。道路が砂利道で信号がなければ、個人は安心して暮らせませんし、企業活動も正常に出来ません。治安維持についても同じです。なかには国家サービスなんていらねーよって思う方もいると思います。

(この記事を見るってことはそういうことなのかなと。)

しかし、資本主義国家の国家サービスには私財を認めるという部分も含まれていると考えます。私財を認める際に税金を払わないと国というものは成り立たないのだろう。

 

つまり、税金を払いたくないなら社会主義国家に行って下さいということです。んー、税金払わない人もどうぞ社会主義国家に行って下さい。

 

沢山税金を払えとは言ってませんよ。私財を認めて欲しいなら、定められた金額だけはちゃんと払おうねということです。もちろん、頭を使って税金をなるべく払わないように工夫するのも(法律にのっとって)正しい手段です。

 

あー、雑すぎた。広告回避用だから許してっちょ。

卒論 part6.5 内容は信用しないで。

生産性のない記事です。

卒論についてですが、
実はプログラム自体はある程度完成しています。
このブログにすべては書いてないですが(笑)

今からは論文本体を書かないといけないんだけど、
まったくやる気が出ないww
正直作るほうが楽しい。

本来は順番が逆で、卒論で書く要求仕様書、外部設計、内部設計、を先に決めておくべきなんだけど、自分にはそこまでのプログラムする自身がなく、
先に楽しいことをやっちゃったw

これからはめんどくさくて、ブログにも何も書くことなくて、って感じですが、
すこしプログラムの手直しも加える予定ですが、某ゲームに熱中しすぎても気楽にできそうですw

報告ののみでした。(可能性は薄いですが、今後もこの続きはあるかもしれませんね)

【Android】タブレットでもPokémon GO

本日7月22日の午前10時

日本でもPokémon GOがインストールできるようになりました。

まだまだ、サーバーも重く時々は鯖落ちもしているようです。

一方、話題のゲームにも関わらず自分の持っている端末ではプレイできず、悲しんでいる人の声も見受けられます。今回、私のできる範囲で多くの人々に遊んでいただきたいと思いこの記事を書いております。

Androidタブレットは非対応とされていますが、実は遊ぶことができます。

 

【以下大幅に改変しましたm(._.)m】

注意事項
・すべて自己責任でお願いします。
・正常に動作するとは限りません。
・Pokémon GOのアカウントが規制対象になる可能性があります。

1.Androidで設定→セキュリティ→提供元不明のアプリにチェックを入れる。

2.下記からapkpureをダウンロード&インストール
https://m.apkpure.com/apkpure/com.apkpure.aegon

非正規のアプリストアです。

3.apkpureからPokémon GOをインストール

以上の手順で簡単に出来ますね。

apkpureは非正規のアプリストアなのでリスクは伴います。ただ、現時点ではGoogleの物と同様の物と見受けられたので紹介しています。

こちらだと更新も出来るので下記の方法より手軽なので簡単にですが、追記で紹介させて頂きました。

 

【以下は元に書いてた内容です。】

ただ、Android4.4以上、PCが使用できる。という条件を満たす必要があります。

注意事項
・すべて自己責任でお願いします。
・正常に動作するとは限りません。
・Pokémon GOのアカウントが規制対象になる可能性があります。
・アップデートが正常にできるかどうかは知りません。(手動ならできるかも?)

 

手順

1.下記URLからapkファイルをPCにダウンロード

https://apkpure.com/search?q=pokemon+go

2.ES ファイルエクスプローラーをAndroidにダウンロード

↓下のURLからダウンロードできます。

ES ファイルエクスプローラー - Google Play の Android アプリ

3.PCとAndroidをMTPモードとしてケーブルで繋げる。

MTPモードにしないと4の作業ができません。

Androidの通知バーから設定を変更しましょう。

4.1でダウンロードしたapkファイルをAndroidにコピぺしください。

自分がわかりやすいフォルダーに入れることをお勧めします。

5.Androidで設定→セキュリティ→提供元不明のアプリにチェックを入れる。

6.ES ファイルエクスプローラーで4でいれたapkファイルをタップしてインストール

 

以上の動作で正常にインストールできるはずです。

(実機動作確認Nexsu7 2013)

追記:RAM1GBのタブレットでも動作しました。ただ重くアプリが落ちることもしばしばあります。

 

是非安全に全員で盛り上がりましょう!!

(ぎりぎりリリース日にかけたぜ!)

 

卒論 part6 内容は信用しないで。

今回は見た目?に関する内容。

Excelなので、セルの幅とか初めに手動で合わせればいいんだけど、全部そういかないのが現実。ユーザーの入力内容によって表示される形式が変えたいからね。

行の幅を変更

Rows(3 * i + 5).RowHeight = 8.38

列の幅を変更

Columns(3 * i - 1).ColumnWidth = 13.50

 

'確認メッセ非表示(セルの結合の時にエラーが出るとき)
Application.DisplayAlerts = False
セルの結合
Range("").Merge
結合解除
Range("").UnMerge

 

格子
Range("").Borders.LineStyle=xlContinuous

外枠
Range("").BorderAround  LineStyle:=xlContinuous

 

プロパティ

実線
LineStyle:=xlContinuous
無し
LineStyle:=xlLineStyleNone

太さ普通
Weight:=xlThin
太め
Weight:=xlMedium


Color:=RGB(0~255,0~255,0~255)

 

よく使うのはこのあたりだと思われる。

卒論 part5 内容は信用しないで。

更新は初めの数日に比べて、更新は鈍ってるけど、何の機能をつけていくか?を考えている感じ。(最終目標は見えてるんだけど、実現しやすいようにどういうインターフェイスで作っておくかとか、どういうプログラムにしておくかを考えていて新しいネタには進んでいません)

part1で触れたExcelのブックを開いたときのイベントを使う日がついに来た。

やっぱりつかうしかないか?という感じ。

Private Sub Workbook_Open()
Worksheets("sheet1").Visible = False
Worksheets("sheet2").Visible = True
Worksheets("sheet3").Visible = False

End Sub

こんな感じにしておけば、マクロさえ有効にしてもらえば、sheet2のみ表示させ、残りのsheetを非表示にできる。これによって、Excelに精通していない人に対しては、強制的にsheetのチュートリアルを通って、自分が想定する使い方をさせることが可能になりそう。
ちなみにこのコードはthis Workbookにかかないといけないです。


シートを切り替えると起こるイベント

このコードもthis Workbookにかかないといけないです。
Private Sub Workbook_SheetActivate(ByVal Sh As Object)

End Sub

 

個別のsheetに書くときはこちら

Private Sub Worksheet_Activate()
End Sub

 

さらっと書いたけど、

Worksheets("sheet1").Visible = False

がsheet1を非表示

Worksheets("sheet1").Visible = True

がsheet1を表示です。

 

実はメモとしてここからが本題w

ページレイアウトのタブの印刷タイトルを押すと、

印刷範囲とかタイトルとか細かい印刷設定が保存できるみたい。

Excelで印刷ってほとんどしたことなかったので、初めて知りましたw

 

 

卒論 part4 内容は信用しないで。

VBAのマクロの記録というものが便利。

プログラミングできなくてもプログラムをかけちゃう?と思うほど。

検索や置換、並び替えというようなプログラムでするより、Excel上でするほうがかなり楽なことは山ほどある。これをVBAで使いたいときにマクロの記録というものがとても便利だ。

開発のタブにあるマクロの記録を押し、実行したいことを手動で実行する。

そして、記録終了のボタンを押すだけで、自分のしたことをVBAで書いてくれる。

 

まぁ、でも生成されるコードは見にくくて、いらない部分盛りだくさんだったり、なので、意味を調べつつ改変して使うとかなりいい感じです。

 

WorksheetFunction.というメゾットもExcelでするほうが楽なことを簡単にかなえてくれます。WorksheetFunction.のプロパティに普段Excelで使用する関数を使用することができます。

たとえば、WorksheetFunction.CountIf("文字列")や WorksheetFunction.Sum(範囲)

application.worksheetfunction.vlookup("めんどうなので省略")という感覚で、Excelの関数が使用できます。ここにVBAで作成した変数などもぶっ込めるので、かなり楽にコードが書けます。

 

Excelで楽に実行できることは、VBAでも簡単に記述できるんですね。(すばらしい)

 

そして、最後に小ネタ。

一発で自分の実現したいことそのままのコードを発見したのであまり理解しきれてないですが、Excelにはendモードというものがあるみたい。(Ctrlを押した状態なのか?)

最終行の行番号の取得なんてことは一行で済むようです。

最終行 = Worksheets("sheet1").Cells(Rows.Count, 1).End(xlUp).Row

 

VBAに興味を持ってても、マクロファイルってウィルスってこともあるんでしょ?という印象もあり、変な誤解をしてたかもしれません。

上手に使うととても便利です。皆さんも何事でもやってみてから判断するようにしましょう。(ネタのストックなくなりました)

卒論 part3 内容は信用しないで。

前回の内容は一度投稿したものの、新しい知識を得たので書き足しました。

今後もそのようなことはあると思います。

 

・乱数

なんやかんやいろんなプログラムでランダムを生むために乱数はよく使いますね。

私自身はゲームでも乱数調整とか言って時刻をいじって目的のものを出したり、などもよくやってて、身近な存在です。

最小値≦乱数≦最大値 といった間の整数の乱数を得るには

 

乱数=Int*1 + 1
        If flg(j) = False Then
            flg(j) = True
            Exit Do
        End If
    Loop
    a(i) = j
    Worksheets("Sheet1").Cells(i + 1, 1).Value = j
Next

 って感じでいけましたね。

 

話が変わりますが、サンプルプログラムの関係ない部分が全く理解できなくて、調べてたら、Rangeというものが置く深すぎる。

これをきっりり理解しなきゃ、ずっとググりながらプログラム書くことになりそうです。なんせRangeはオブジェクトのRangeとプロパティのRangeと変数のRangeがあるんですよ。個人的に変数のRangeってなにもの?!って感じです。

 

*1:最大値 - 最小値 +1 ) * Rnd + 最小値)

 

すべてはこれにつきますw

ただし!!これだけだと、シート起動後の挙動が、毎回 同じになります。

そこで魔法の言葉

Randomize

を乱数を生成する前に1回唱えてやると毎回ちがう乱数がきっちり生成されます。

 

乱数を大量に作ったり、かぶらないように乱数を作成するプログラムは

前回までの内容と組み合わせたらできますね。

 

重複しないランダムな数値・乱数を作成するExcelマクロ:エクセルマクロ・Excel VBAの使い方-マクロのサンプル

 これを参考にしましたが、

Dim i As Integer
Dim j As Integer
Dim 個数 As Integer '欲しい乱数の個数
    個数 = xxx
Dim a(個数-1) As Integer '乱数を格納する場所
Dim flg() As Boolean

ReDim flg(1 To 個数)
Randomize

For i = 0 To 個数 - 1
    Do
        j = Int(Rnd * (個数

卒論 part2 内容は信用しないで。

よく使うものもちゃんとあるけど、、、

やっぱり括弧がない。その代わりに文字とは記憶力のない私にとってつらたん。

 

・if文

 If 条件 Then

    true 処理

ElseIf 条件 Then
    true 処理
Else
    その他の処理
End If

 

・case文

Select Case 変数
    Case 値1
        変数=値1の場合の処理
    Case 値2
        変数=値2の場合の処理
    Case Else
        その他場合の処理
End Select

 

・for文

For i = 3 To 5
処理
Next

(この場合、抜けた後i=6)

i=3,4,5,の場合をループして実行する。

 

・while文

ん~3種類あるらしく、

 

Do While 条件式
条件式を満たすまで繰り返す処理
Loop

 

Do While 条件式
条件式を満たすまで繰り返す処理
Loop While 条件式

 

Do
条件式を満たすまで繰り返す処理
Loop Until 条件式

 

条件式を後から参照できるのは素晴らしい。

だが、違和感すごいw

Untilも便利そう?

 

・goto文

GoTo LABEL名

LABEL名:

(使うなと言われてきたから使う発想にならない)

 

・exit

Exit Sub
Exit Do

Exit For

いろんな処理から抜けれる?

 

上4つは今のところ使ってますが、exitは使えそうなのでメモ

卒論 part1 内容は信用しないで。

VBAの素晴らしくあり、わかりにくいポイントは関数名や変数名に日本語が使えること。これは自分のコードだと見やすいが、他人のコードを見るとわけわかめになるw

ある程度の入力補助はありがたい。最近の開発環境ではどれでもあるけどね。

全角のスペースなども自動で半角スペースにしてくれるみたい!!

文字の大きさ変更はツール→オプションにあります。

 でも、今のところ簡単!!

 

・変数の宣言

Dim 変数名 As データ型

As データ型 は省略可

よく使うデータ型としてはInteger、Long、Double、String、Boolean、

他に万能なVariantなどもある。

 ただ、Variantはあんまり使いたくない。

(理由は美しくない、誤動作、わずかに遅い)

また、配列の時も同じ。

As 配列名(9) As データ型

上の場合、配列名(0)~配列名(9)という10個の変数が宣言される。

 

・関数

Private Sub 関数名(引数)

 

End Sub

括弧でくくらないの??と思ってしまった。

関数を呼び出すときは、

Call 関数名

でいいみたい。

 

 Excelを開いたときに実行されるイベント

Private Sub Workbook_Open()

End Sub

とか

 セルをダブルクリックしたときに実行されるイベント

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub

などはしっかり用意されてた。よかった。

 

・メッセージボックス

C#でも似たものがありますが、VBAをし始めて一番使うのがこれ。

    MsgBox "文字"

    MsgBox 変数

これがあることで正常に動くかをデバックしながら作れる。

新しい言語で全く自身がないので、ほんとこれが便利。

 

 

 

リンクは無断で張っておりますm(__)m
問題がある方はお手数おかけしますが、コメントを下さい。
速やかに、削除させていただきます。