• 締切済み

数字でピラミッドを出力させるには・・・。

pkh4989の回答

  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.4

VBAです。参考にしてください。 Sub 数字でピラミッドを出力()   Dim mI     As Integer   Dim wCnt    As Integer   '   mI = 7     '←Inputされた数字   With ActiveSheet     .Cells.ClearContents     For wI = 1 To mI       wCnt = 0       For xI = 1 To wI * 2 - 1         If xI > wI Then           wCnt = wCnt - 1         Else           wCnt = wCnt + 1         End If         .Cells(wI, mI + 1 - wI).Offset(0, xI) = wCnt       Next     Next   End With End Sub 'マクロ貼付 (1) Alt+F11 (ツール → マクロ → Visual Basic Editor) →「挿入」→「標準モジュール」で表示される画面に貼り付け (2) 実行は、(F5を押す)又は、シート画面に戻って Alt+F8を押してマクロ一覧からマクロ名を選択して実行

関連するQ&A

  • 数学ピラミッド

    分からなかったので質問させていただきます。まず1を書き、その下に2と3を書き、またその下には4,5,6、その下は7、8、9、10を書いて•••この様に数字をピラミッド状に並べていったとした場合、n段目の一番右の数は何になるか、という問題です。数字をつかって表すものです。分かったらぜひ教えて下さい。

  • 入力した数字に紐づく数字1、数字2を出力する。

    どなたかご存じでしたら回答をお願いします。 下記のような第1~第5数字に任意で0~14迄 の数字を入力した場合、あらかじめ用意しておいた 第1数字テーブル~第5数字テーブルのKEYと同じ数字の場合、 そのKEYの数字1、数字2を入力値の下に出力する方法が知りたいです。 【入力例】 第1数字 第2数字 第3数字 第4数字  第5数字   5      4     0      7      14 【第1数字テーブル】   KEY  数字1  数字2    0     4     1    1     4     2    2     2     1    3     7     3    4     7     3    5     2     1    6     4     2    7     6     1    8     5     1    9     5     1   10     8     7   11     2     7   12     7     0   13     6     1   14     8     1   【第2数字テーブル】   ※第1テーブルと同じKEY(0~14迄)のテーブルを用意。 【第3数字テーブル】    ※第1テーブルと同じKEY(0~14迄)のテーブルを用意。 【第4数字テーブル】   ※第1テーブルと同じKEY(0~14迄)のテーブルを用意。 【第5数字テーブル】    ※第1テーブルと同じKEY(0~14迄)のテーブルを用意。 【出力結果】 第1数字 第2数字 第3数字 第4数字 第5数字   5      4     0      7     14   <---- 入力値   2      7     4      6      8   <---- 数字1を出力   1      3     1      1      1   <---- 数字2を出力 ●注意事項     1)第1テーブル~第5テーブルのKEYは0~14迄ありますが、       中身である数字1、数字2の値はそれぞれ異なります。     2)第1数字で参照するのは、第1テーブルのみです。       以下、第2数字は第2テーブル、第3数字は第3テーブル、       第4数字は第4テーブル、第5数字は第5テーブルを参照します。     3)使用しているエクセルは2010です。 以上、ご回答よろしくお願いします。       

  • 筆まめ26 CSV出力時にマークが出力されない

    いつも筆まめを利用させていただいております。 ありがとうございます。 現在、筆まめVer26を利用しております。 (近日中にVer30へアップグレードする予定です。) これまでに登録した住所録をCSV形式で出力して、データの中身を精査しようとしております。 しかしながら、CSV出力をいたしますと、マーク1~マーク10のチェック状態が出力されません。 私のやり方が悪いのだと思いますが、試行錯誤してもうまくいきません。 お手数ですが、CSV出力の際に、マーク1~マーク10のチェック状態も出力されるように、どうぞご教示ください。 なお、Excelで編集できる形式であれば、CSVにはこだわりません。 よろしくお願いいたします。 ※OKWAVEより補足:「ソースネクスト株式会社の製品・サービス」についての質問です。

  • 配列の加算

    最近javascriptを本を買ってきて勉強し始めたのですが、 本に載っていた問題が分からない上、解答が載った冊子をなくして困っています。 どなたか教えていただけないでしょうか。 ○まず1~9の数字を画面上に出力 ○次に改行をして、↑で出力した数字の隣り合わせた数字同士を足して出力  もし足した数が2桁になった場合は1の位のみを出力 ○この処理を最後の1桁になるまで続ける  最終的には、  123456789  35791356   8260481    ・    ・ の様に逆ピラミッド型になります。 for文やwhile文を使って処理を繰り返す事と、 2桁になった時は、10で割って余りを出すかのかなとぼんやりとしか分かりません。 お手数ですが、よろしくお願いいたします。

  • Loop で文字を回すやり方

    Rubyで 数字を下記のようなやり方では1~12 までの数字をまわせますが、 #ソース n=1 loop do puts n if n == 12 break end n += 1 end 実行結果↓ 1 2 3 4 5 6 7 8 9 10 11 12 このような形で アルファベットの a ~z を順番にまわしたい場合は、どのように書くことができますでしょうか? 試行錯誤で試しましたが、うまくいかなかったので、 教えてくださいよろしくお願いします。

    • ベストアンサー
    • Ruby
  • 入力した値の周りの数字を出力する方法

    どなたかご存知でしたら回答をよろしくお願いします。 【質問】  5×6のセルがあり、その中にはランダムに数字が1つ入っています(重複有り)。  下記の様に入力値1~6に値を入れたら、5×6のセルを検索する。  検索できたら、その数字の周りにある数字を出力ゾーンに出力する。  検索できない場合は何もしない。  ★-------   以下は具体的に入力値1~6を入れた場合の説明です。 ----------★    「入力値1」に08を入れたら、5×6のセルの中の、08の周りにある         05、04、07、19、23、20、21、09を出力ゾーンに出力する。   「入力値2」に41を入れたら、5×6のセルの中の、41の周りにある         38、30、37を出力ゾーンに出力する。   「入力値3」に37を入れたら、5×6のセルの中の、3箇所ある37の周りにある         41、38、30、35、43、39、36、29、18、28を出力ゾーンに出力する。   「入力値4」に29を入れたら、5×6のセルの中の、29の周りにある         24、20、23、15、18、37、35、30を出力ゾーンに出力する。   「入力値5」に03を入れたら、5×6のセルの中の、03の周りにある         01、06、12を出力ゾーンに出力する。   「入力値6」に23を入れたら、5×6のセルの中の、23の周りにある         20、08、19、06、15、18、29、24を出力ゾーンに出力する。     【5×6のセル】   【入力ゾーン】 【出力ゾーン】 05 09 21 25 38 41    入力値1:08  05 04 07 19 23 20 21 09    04 08 20 24 30 37    入力値2:41  38 30 37 07 19 23 29 35 43    入力値3:37  41 38 30 35 43 39 36 29 18 28 01 06 15 18 37 39    入力値4:29  24 20 23 15 18 37 35 30 03 12 17 28 36 37    入力値5:03  01 06 12             入力値6:23  20 08 19 06 15 18 29 24  【備考】   ・使用する数字は1~99迄で、5×6のセルにはその中からランダムに選んだ数字が    重複有りで入っています。   ・使用するエクセルは2010です。 以上、よろしくお願いします。

  • forループで試行を繰返し、その度の結果を全て別出力したい (メモリが足りない?)

     ほぼ同じ試行をforループで繰り返しているのですが、一つ一つの宣言している配列が非常に大きいせいか、メモリ不足の為に勝手に終了してしまいます。一回の試行だけなら特に問題なく走ってくれるので、 ・ループする前に結果を出力 ・出力し終わったら頭に戻って繰り返す ・また出た結果を今度は別の名前か何かで前のファイルに上書きせず出力 という作業を繰り返したいです。そこで、出力する際にどうすれば全部の結果を出せるのかが分からず困ってます。出力する名前を施行毎に変えたりできるのでしょうか? ちなみに、メモリが足りない可能性はmallocを使ってみましたが駄目でした。何かmalloc以外でメモリ不足を解決する方法があれば、そちらの解決方法でも構いません。 宜しく御願いします。

  • 有効数字が分からない

    問題集を解いていて、 「炭素分子1gと反応する物質の質量を求めよ」といった内容の問題で、 文章中の数値の有効数字は3桁ですが、「炭素分子1g」と書いてあったので、 有効数字は少ないほうに合わせるべきだから有効数字は1桁になるはずだと僕は思うんですが、 回答は有効数字3桁でした。 これはどういうことでしょうか? 問題集がアバウトなのでしょうか? それともこの場合1g=1.0000…gというルールがあるのでしょうか? また違う問題で、文章中の有効数字は3桁で、回答を%で示せという問題で、回答だと小数点未満は切り捨てて整数値で書いてありました。 (整数値で書け、といった注意書きはありません) どうすればよいのでしょうか? これらの場合、高校のテストの場合どう回答すればよいですか?

  • ExcelVBA:アルファベットの文字を簡単に出力する方法

    ExcelVBAで、数字のように簡単にアルファベットを順番通りに出力する方法はないでしょうか? 今は下のように、一度変数にアルファベットを代入してから出力するようにしているのですが、もっと簡単な方法はないでしょうか? 用途は例えば、「Range("A1")」のようにセルを指定したい場合などに使用します。 For a= 0 To 25 Select Case a Case 0:英字(a)="A" Case 1:英字(a)="B" Case 2:英字(a)="C" ~~~ Next a 回答よろしくお願いします。

  • テンキーで数字をインプット出来なくなった

    パソコンモデル:SVE15136CJBを平成25年春に購入しました。 1~2ヶ月前からテンキーで数字をインプット出来なくなりました。やもうえずファンクションキーの下の数字でインプットしていますが、不便です。 故障なのか、変なキーを押してしまったのか分かりません。 解決策が分かりましたら、ご回答をお願い致します。 ※OKWaveより補足:「ソニー製品」についての質問です。