2019-01-01から1年間の記事一覧
他のファイルを操作する方法を記載します。 1. パスの取得 2. 他のファイルをオープンする 3. コピーする 4. 閉じる では、順番に見ていきます。 1. パスの取得 Dim curPath As String curPath = ThisWorkbook.Path 上記で現在実行しているマクロのパスを取…
エクセルで出力したときに数値が文字列として 設定されてしまうことありますよね。 並び替えを行うとき、比較するときなど 数値が文字列として設定されてしまうと困ることが多々ありますよね。 今回は、このような場合の対策です。 以下、サンプルです。 Sub…
プロパティとは、privateなフィールドの値を 読み書きするためのメンバーです。 プロパティはget,setのブロックがついており これらはアクセサと呼ばれる特別なメソッドです。 サンプルを書きながら説明していきます。 public class MainClass { public void…
コンストラクタって何なのでしょうか? C# 入門したときに、自分の中に全く消化できないものでした。 勉強を始めて、自分の中に落とし込めた部分をメモしたいと思います。 コンストラクタは ・new したときに呼び出されるメソッド ・クラスと同じ名前 ・戻り…
リストへの要素追加、コレクション追加のサンプルをメモ。 リストへの要素追加は Addメソッドを使います。 public void AddSample() { var list = new List<string>(); list.Add("みかん"); list.Add("いちご"); list.Add("すいか"); foreach (var item in list) { C</string>…
VBAにはC#などのようにList がありません。 配列も要素数を指定しなければいけないし… 動的に上限するデータを扱いたいときに困りますよね。 なので、今回は配列の要素数を動的に増減するサンプルをつくってみます。 ' 配列を宣言し、要素数を0で初期化 Dim …
今日は配列のサンプルを作ります。 配列を使用する際は、変数を使用するときと同じように 宣言から行います。 まず、サンプルを。 Dim arr(2) As String arr(0) = "データ1" arr(1) = "データ2" arr(2) = "データ3" 一行目で配列を宣言しています。 Dim 配列…
RangeとCellsって似ているようで似ていない… この2つの使い方について違いをメモ。 Rangeの使い方の基本は以下ですね。 ' セルA1に10を出力 Range("A1").Value = 10 ' B1:C3の範囲内のセルに20を出力する Range("B1:C3").Value = 20 ' 「Data」と名前定義し…
UnixTimeを変換したい!ってなることがあるので サンプルを作りました。 Console.WriteLine("変換したいUnixTimeを入力してください。"); var input = Console.ReadLine(); var unixTime = 0; if (int.TryParse(input, out unixTime)) { // Unix時間をDateTi…
Windows で作成したマクロを動かしたら 「ActiveX コンポーネントはオブジェクトを作成できません」 とエラーが表示され、どうにもこうにも動かない… 該当箇所では以下の記載。 CreateObject(“Scripting.Dictionary”) Dictionaryオブジェクトの宣言部分でし…
日付の名前でディレクトリを作成し エラーの場合、テキストに出力するサンプルです。 using System; using System.IO; using System.Diagnostics; namespace FileSample { class Program { static void Main(string[] args) { var dateTime = DateTime.Now.T…
名前のない型を作ることができるTuple。 今まで使ったことがなかったので、サンプル作ってみました。 var tuple = ("データ1", 1000); Console.WriteLine($"データ:{tuple.Item1} 種別:{tuple.Item2}"); string とint をセットしています。 Tuple にセット…
セルが選択されたり、変化があった場合に なにかイベントを発生したことありますよね。 そんなときはワークシートイベントです。 普段、コードを書くときは標準モジュールを追加して 書いていると思います。 ワークシートイベントは、"Sheet1" とかシートの…
git初心者なので、最近知ったことメモ。 ローカルでgit管理する方法です。 $ mkdir 対象ディレクトリ名 $ cd 対象ディレクトリ名 $ git init $ git config --local ユーザー名 $ git config --local アドレス 以上です。 $ git init このコマンドだけで、新…
C#とかの言語だとcontinue ってありますよね。 ループで後続の処理を飛ばして次のループいくやつですね。 なんと、VBAではcontinue がありません。 なので、VBAでcontinueのようなことをしたい場合は 以下のようにします。 Do While ActiveCell.Value <> "" …
アクセス修飾子は、アクセス可能な範囲を指定するものです。 今回は4つのアクセス修飾子について記載します。 アクセス修飾子 説明 public どこからでもアクセス可能 protected 同一クラスか派生クラスからアクセス可能 internal 同一アセンブリ内でアクセス…
CSV ファイルの読み込みサンプルです。 2通りの方法を書いてみます。 まずは、for でデータを最後まで読み込む方法。 // CSVファイルパス var filename = "対象ファイルのパス"; var rowList = new List<string[]>(); var sr = new StreamReader(filename); for (;;) {</string[]>…
エクセルの名前定義に使える文字にはいくつかのルールがあります。 忘れそうなのでメモ。 C, c, R, r の一文字の名前は使用不可 スペースは使用不可 最初の文字は、文字, アンダーバー(_), 円記号(¥)が使用可能 大文字小文字は区別されないため、list とList…
エクセルのデータを操作するとき セルに値が入っている間は処理を続けるって処理を よくすると思うのでサンプルを作成しました。 ' ループ対象の列の先頭セル Range("A1").Select ' 空白セルでない間はループする Do While ActiveCell.Value <> "" ' 空白セ…
入力規則を設定しているセルに対して コピペすると入力規則が壊れてしましますよね。 しかも、リストの場合、エラー表示を抑止している場合 リストに設定されている値以外も 貼り付けることが可能になってしまいますよね。 今回は、ペースト時に入力規則を復…
最近VBAの勉強を始めたので、基礎からメモ。 まずは変数。 Dim 変数名 As データ型 と定義します。 変数の宣言と同時に初期値の代入はできません。 以下、OKのコードとNGのコード。 // OK Dim num As Integer num = 100 // NG 宣言と同時に初期値は代入でき…
例えば、ユーザーの入力が数値かどうかを判定したい場合。 以下の方法でチェックできます。 var input = Console.ReadLine(); var num = 0; if (int.TryParse(input, out num)) { // 数値だった場合の処理 } 数値の場合、TryParse はTrue を返し num には数…
乱数の生成についてメモ。 // シード値100を用いて初期化 var seed = 100; var r = new Random(seed); // 0〜5の乱数を生成 var r1 = r.Next(5); // -5〜5の乱数を生成 var r2 = r.Next(-5, 5); ここで注意。シードが同じの場合 同じ乱数が生成されてしまい…
コンソールで同じ位置にかつ前の値はクリアして 値を表示したいときありますよね。 3秒間のカウントダウンを表示するサンプルです。 // 初期のカーソル位置を保持する var left = Console.CursorLeft; var top = Console.CursorTop; // カーソルの位置を設定…
再帰呼び出しって何?ってよくなるのでメモ。 再帰呼び出しとはあるメソッドのなかで自分自身を呼び出すとのこと。 イメージしにくいので、例としてある整数の桁の合計を求める処理を書いてみます。 以下のような再帰呼び出しで求めることができます。 publi…
ただ値の比較結果を出力したいだけのとき 以下のような書き方だと面倒ですよね。 var result = false; if (x == y) { result = true; } Console.WriteLine($"{x} と {y} は等しい?? ==> {result}"); このような書き方をしたら一行で表せるのでスッキリです。…
よく忘れるのでメモ。 以下のようなコードがあります。 // num は数値とする var result = (num % 2 == 0) ? "偶数" : "奇数"; Console.WriteLine($"{num} は{result}です。"); 偶数か奇数なのかを判定するコードです。 ?: 演算子はtrue、false に応じて指定…
普段、dotnet コマンド使っているので 私がよく使うコマンドをメモ。 コマンド 内容 dotnet build ビルドを実施 dotnet run ソースコードを実行 dotnet new 指定されたテンプレートに基づいて新規作成する dotnet sln add ソリューションファイルにプロジェ…
最初はやはり「Hello World!」の出力ですね。 以下サンプルです。 var text = "Hello World!"; Console.WriteLine("{0}", text); Console.WriteLine($"{text}"); 私は2つ目の記載方法が好きです。 C#6.0 以降で追加された機能のようですね。 $を先頭に記載…
主にC#のメモを書いていきます。 他にもそのときそのとき勉強している言語のメモも書いていくつもりです。 最低でも週1は更新したいところ。 がんばります。