【ポケモンGO】レイドボス戦~ラプラス



レイドボス戦が始まってからもうそろそろ2週間が経ちますが、人気のあるボスと人気のないボスで差がありますね。あと、人気のあるボスは強くて一人では太刀打ちができない事も分かりました。

そして人気のあるボスは なかなか見かけません。ギャラドス・ラプラスは1回ずつ討伐しましたが、どちらもゲットできず、悲しい結果に終わりました。

どちらもアキバで産まれましたが、ラプラスはスクリーンショットを撮ったのでご紹介です。

▼ 場所 : 秋葉原の「カレーは飲み物。秋葉原店」


▼ レイドボス-ラプラス戦 開始直後
ラプラス 相当デカイ!!画面に収まってないよ?!


▼ レイドボス戦-ラプラス戦 討伐


カテゴリー: ポケモンGO | コメントする

【C#】Excel操作:グラフの作成~タイトルの設定


 グラフのタイトルを設定する


グラフのタイトルを設定するには、下記のように記述します。

Chart ObjChart.HasTitle = true;
ChartTitle ChtTitle = ObjChart.ChartTitle;
ChtTitle.Text = "グラフのタイトル";

もし、「ObjChart.HasTitle = true;」 を記載しない場合、「このオブジェクトにはタイトルがありません」というエラーメッセージが表示されます。



 【例】グラフのタイトルを設定する =ソースコード=


具体的に、グラフの作成で使ったコードにタイトルの処理を追記した例をご紹介します。

グラフのタイトル処理の箇所は赤字で記載します。

private void cmdMakeGraf_Click(object sender, EventArgs e)
{
  /* コンボボックスの情報からExcelブック名を取得する */
  TargetFile = cmbExcelBook.Text;

  /* リストボックスの情報からExcelシート名を取得する */
  if (lstExcelSheet.SelectedItems.Count == 0)
  {
    MessageBox.Show("書き込むシートを選択して下さい");
    return;
  }
  TargetSheet = lstExcelSheet.SelectedItem.ToString();

  /* Excelワークブック・ワークシートオブジェクトの取得 */
  ExcelWB = ExcelApp.Workbooks.Item[TargetFile];
  ExcelWS = (Worksheet)ExcelWB.Sheets[TargetSheet];

  /* Excelチャートオブジェクトの設定 */
  ChartObjects ChartObjs = (ChartObjects)ExcelWS.ChartObjects(Type.Missing);

  /* チャート作成(行 = 450, 列 = 10, 幅500 高さ 350) */
  ChartObject chartObj = ChartObjs.Add(450, 10, 500, 350);
  Chart ObjChart = chartObj.Chart;

  /* チャートのタイトル事前準備 */
  ObjChart.HasTitle = true;
  ChartTitle ChtTitle = ObjChart.ChartTitle;

  /* チャートのタイトル・種類を設定 */
  /* 縦棒 */
  if (rdoColumn.Checked == true)
  {
    ChtTitle.Text = "縦棒";
    ObjChart.ChartType = XlChartType.xlColumnStacked;
  }

  /* 折れ線 */
  if (rdoLine.Checked == true)
  {
    ChtTitle.Text = "折れ線";
    ObjChart.ChartType = XlChartType.xlLine;
  }

  /* 横棒 */
  if (rdoBar.Checked == true)
  {
    ChtTitle.Text = "横棒";
    ObjChart.ChartType = XlChartType.xlBarStacked;
  }

  /* データセット */
  Range chartRange = ExcelWS.get_Range(ExcelWS.Cells[1, 1], ExcelWS.Cells[LineX, LineY]);
  ObjChart.SetSourceData(chartRange);
}



 【例】グラフのタイトルを設定する =出力結果=


上記出力結果は下記の通りです。

■ 縦棒


■ 折れ線


■ 横棒


カテゴリー: C#, Excel操作, システム開発 | コメントする

【C#】Excel操作:グラフの作成


 グラフを作成する手順


C#でExcelのグラフを作成するには、下記手順で記述します。

/* Excelワークブック・ワークシートオブジェクトの取得 */
ExcelWB = ExcelApp.Workbooks.Item[TargetFile];
ExcelWS = (Worksheet)ExcelWB.Sheets[TargetSheet];

/* Excelチャートオブジェクトの設定 */
ChartObjects ChartObjs = (ChartObjects)ExcelWS.ChartObjects(Type.Missing);

/* チャート作成(行 = 450, 列 = 10, 幅500 高さ 350) */
ChartObject chartObj = charts.Add(450, 10, 500, 350);
Chart ObjChart = chartObj.Chart;

/* チャートの種類を設定(折れ線グラフ) */
ObjChart.ChartType = XlChartType.xlXYScatterLinesNoMarkers;

/* データセット */
Range chartRange = ExcelWS.get_Range(ExcelWS.Cells[1, 1], ExcelWS.Cells[LineX, LineY]);
ObjChart.SetSourceData(chartRange);

  > グラフのタイトル設定はこちらをご参照下さい。



 【例】グラフ作成 =画面=


以前ご紹介した「シートの追加・削除」画面に、新たにグラフ作成機能を下記のように追加しました。



グラフ作成するために、①まずサンプルのデータを作成し、②次にグラフの種類をラジオボタンで選択し、③グラフを作成します。


 【例】グラフ作成用のデータ作成 =ソースコード=


下記のようなデータを作成するためのコードを書きました。


下記コードの中で、Excelのブック名・シート名を取得する仕組み・方法についてはExcel情報の取得をご確認下さい。

private void cmdInputGrafData_Click(object sender, EventArgs e)
{
  /* コンボボックスの情報からExcelブック名を取得する */
  TargetFile = cmbExcelBook.Text;

  /* リストボックスの情報からExcelシート名を取得する */
  if (lstExcelSheet.SelectedItems.Count == 0)
  {
    MessageBox.Show("書き込むシートを選択して下さい");
    return;
  }
  TargetSheet = lstExcelSheet.SelectedItem.ToString();

  /* Excelワークブック・ワークシートオブジェクトの取得 */
  ExcelWB = ExcelApp.Workbooks.Item[TargetFile];
  ExcelWS = (Worksheet)ExcelWB.Sheets[TargetSheet];

  /* Excelセルへの書き込むための変数設定 */
  object[,] ExcelData;
  LineX = 5;
  LineY = 5;

  /* ExcelDataオブジェクトの範囲定義 */
  ExcelData = new object[LineX, LineY];

  /* データ作成 */
  for (int i = 0; i < LineX; i++)
  {
    for (int j = 0; j < LineY; j++)
    {
      /* 1行目に年月を設定 */
      if (i == 0)
      {
        switch (j)
        {
          case 1:
            ExcelData[i, j] = "'2017/04";
            break;

          case 2:
            ExcelData[i, j] = "'2017/05";
            break;

          case 3:
            ExcelData[i, j] = "'2017/06";
            break;

          case 4:
            ExcelData[i, j] = "'2017/07";
            break;
        }
      }
      /* 1列目に果物を設定 */
      else if (j == 0)
      {
        switch (i)
        {
          case 1 :
            ExcelData[i, j] = "リンゴ";
            break;

          case 2:
            ExcelData[i, j] = "みかん";
            break;

          case 3:
            ExcelData[i, j] = "バナナ";
            break;

          case 4:
            ExcelData[i, j] = "ぶどう";
            break;
        }
      }
      /* 1行目・1列目以外は数値(行+列)を設定 */
      else
      {
        ExcelData[i, j] = i + j;
      }
    }
  }

  /* 書き込み */
  ExcelRNG = ExcelWS.Range[ExcelWS.Cells[1, 1], ExcelWS.Cells[LineX, LineY]];
  ExcelRNG.Value = ExcelData;

  /* 罫線を付ける */
  ExcelRNG = ExcelWS.get_Range(ExcelWS.Cells[1, 1], ExcelWS.Cells[LineX, LineY]);

  ExcelRNG.Borders.LineStyle = XlLineStyle.xlContinuous;
}



 【例】グラフ作成 =ソースコード=


上記のデータを基にグラフを作成します。

private void cmdMakeGraf_Click(object sender, EventArgs e)
{
  /* コンボボックスの情報からExcelブック名を取得する */
  TargetFile = cmbExcelBook.Text;

  /* リストボックスの情報からExcelシート名を取得する */
  if (lstExcelSheet.SelectedItems.Count == 0)
  {
    MessageBox.Show("書き込むシートを選択して下さい");
    return;
  }
  TargetSheet = lstExcelSheet.SelectedItem.ToString();

  /* Excelワークブック・ワークシートオブジェクトの取得 */
  ExcelWB = ExcelApp.Workbooks.Item[TargetFile];
  ExcelWS = (Worksheet)ExcelWB.Sheets[TargetSheet];

  /* Excelチャートオブジェクトの設定 */
  ChartObjects ChartObjs = (ChartObjects)ExcelWS.ChartObjects(Type.Missing);

  /* チャート作成(行 = 450, 列 = 10, 幅500 高さ 350) */
  ChartObject chartObj = ChartObjs.Add(450, 10, 500, 350);
  Chart ObjChart = chartObj.Chart;

  /* チャートの種類を設定 */
  /* 縦棒 */
  if (rdoColumn.Checked == true)
  {
    ObjChart.ChartType = XlChartType.xlColumnStacked;
  }

  /* 折れ線 */
  if (rdoLine.Checked == true)
  {
    ObjChart.ChartType = XlChartType.xlLine;
  }

  /* 横棒 */
  if (rdoBar.Checked == true)
  {
    ObjChart.ChartType = XlChartType.xlBarStacked;
  }

  /* データセット */
  Range chartRange = ExcelWS.get_Range(ExcelWS.Cells[1, 1], ExcelWS.Cells[LineX, LineY]);
  ObjChart.SetSourceData(chartRange);
}


 【例】グラフ作成 =出力結果=


上記出力結果は下記の通りです。

■ 縦棒


■ 折れ線


■ 横棒


カテゴリー: C#, Excel操作, システム開発 | コメントする

【ポケモンGO】ジムにポケモンが置けない!

バージョンアップ前、ジムバトル中にフリーズする現象が多発し、多分、原因は戦闘中にジムにポケモンが置かれるから・・・とバトルガール金メダルをゲットした時に書きましたが、今回のバージョアップでは、ここの対策がキッチリとられてますね。

ジム戦闘中にポケモンを置こうとすると「ジムでのバトルが終わるまで、少しお待ちください」というメッセージが出てきます。



いつまで待てば良いんだろう?5分待ち、10分待ち・・・諦めて帰りました。

別の日に、自宅近くのジムに空きがあるのを見つけて駆けつけると、やっぱり同じメッセージが出てポケモンを置く事が出来ません。

30分程待っても置けず、結局ジムが制覇されました。即バトルして制覇し直してポケモンを置きました。少し外出する積りが45分くらい出掛けるハメになり・・・。

1体の戦闘時間が最長で99秒。5体戦闘すると495秒(8分以上)。戦闘前後の間隔もあり、続けて戦闘されると2倍、3倍の時間が掛かると思うと、一旦戦闘モードに入ったら置くのを諦めろって事ですかね?!

空きがあって、戦闘中だったら、その空き分だけ予約できるような仕組みを作って欲しいです。そして、戦闘が終了しジムが制覇されていなければ、予約しているポケモンが受け入れられるような・・・。

同じように、木の実も戦闘中に与えるのは無しにして貰いたいものです。

戦闘終了すると、全快していて戦闘する気が失せます。1体当たりに木の実をあげる個数制限はありますが・・・。

ついでに言ってしまうと、戦闘中、HPが突然回復したと思ったら、その直後に倒したり・・・とゲージに不具合があります。まだまだジム戦では改善の余地が豊富にありそうですね!!

カテゴリー: ポケモンGO | コメントする

【ポケモンGO】新たなメダル

新たなジム、そしてレイドバトル」と題してジムバトルが大幅バージョンアップしましたが、それに合わせてメダルが3つ「きのみ名人」「チャンピオン」「ジムリーダー」が追加になりました。



一方、自分の色のジムではバトル(トレーニング)出来なくなったので、メダルは残りつつも「エリートトレーナー」は、もう記録を伸ばす事ができないのかな?

カテゴリー: ポケモンGO | コメントする