No.5ベストアンサー
- 回答日時:
テキストBOXなどのプロパティを使用すれば簡単にできるような気がします。
テキストBOX以外でも複数行表示や中央揃えができるオブジェクトなら応用可能
だとおもいます。
スペースで補正するやり方は、フォントなどに左右されます。Pが付いてるフォントは避けたほうがいいと思います。
一応サンプルコード書いときます。
オブジェクト
========= ==============
Form Form1
TextBox Text1
Text2
Command
Button Command1
Command2
Command3
Command4
プロパティ設定
'Text1.MultiLine を設計時にTrue
'Text1.Alignment を設計時に中央
'Text2.MultiLine を設計時にTrue
'Text2.Alignment を設計時に左
ソース
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Option Explicit
'※※※※※※※※※※※※※※※※※
'ボタンのクリック7編テキストボックスのプロパティ使用版
'※※※※※※※※※※※※※※※※※
Private Sub Command1_Click()
Call FlTextBoxP(7)
End Sub
'※※※※※※※※※※※※※※※※※
'ボタンのクリック8編テキストボックスのプロパティ使用版
'※※※※※※※※※※※※※※※※※
Private Sub Command2_Click()
Call FlTextBoxP(8)
End Sub
'※※※※※※※※※※※※※※※※※
'ボタンのクリック7編スペース使用版
'※※※※※※※※※※※※※※※※※
Private Sub Command3_Click()
Call FlTextBoxS(7)
End Sub
'※※※※※※※※※※※※※※※※※
'ボタンのクリック8編スペース使用版
'※※※※※※※※※※※※※※※※※
Private Sub Command4_Click()
Call FlTextBoxS(8)
End Sub
'※※※※※※※※※※※※※※※※※
'テキストボックスのプロパティ使用版
'※※※※※※※※※※※※※※※※※
Private Function FlTextBoxP(ByVal vlStrLen As Long) As Long
Dim lCnt As Long
'Text1.MultiLine を設計時にTrue
'Text1.Alignment を設計時に中央
Text1.Text = "" 'クリア
lCnt = vlStrLen 'ループカウント
Do Until lCnt <= 0
'初回以外改行を加える
If Text1.Text <> "" Then
Text1.Text = vbCrLf & Text1.Text
End If
'残りカウント分*を表示
Text1.Text = String(lCnt, "*") & Text1.Text
'カウント減算
lCnt = lCnt - 1
Loop
End Function
'※※※※※※※※※※※※※※※※※
'テキストボックスのスペース使用版
'※※※※※※※※※※※※※※※※※
Private Function FlTextBoxS(ByVal vlStrLen As Long) As Long
Dim lwCnt As Long
Dim lCnt As Long
Dim sSpaceStr As String
Dim sPrintStr As String
'Text2.MultiLine を設計時にTrue
'Text2.Alignment を設計時に左
Text2.Font = "MS ゴシック"
Text2.Text = "" 'クリア
lCnt = vlStrLen 'ループカウント
Do Until lCnt <= 0
'初回以外改行を加える
If Text2.Text <> "" Then
Text2.Text = vbCrLf & Text2.Text
End If
sSpaceStr = ""
If vlStrLen - lCnt <> 0 Then
sSpaceStr = String(vlStrLen - lCnt, " ")
End If
sPrintStr = String(lCnt, "*")
Text2.Text = sSpaceStr & sPrintStr & Text2.Text
'カウント減算
lCnt = lCnt - 1
Loop
End Function
No.4
- 回答日時:
*
**
***
****
*****
******
*******
********
このような、物を作るロジックは次のとおり。
半角スペースと全角スペースをうまくつなげることで、実現しています。
Form1にテキストボックス(Text1)をはりつけて、フォーム部分をクリックすると、
テキストボックスに文字のピラミッドが入ります。
あらかじめ、テキストボックスのプロパティーMultiLineをTrueにしておいてください。
Private Sub Form_Click()
Dim i As Long
Dim n As Long
Dim str As String
n = 8 '←ここで段数を決めています。
str = ""
For i = 1 To n
If (i / 2) = CInt((i / 2)) Then
str = str & String$(n - (i / 2), " ") & String$(i, "*") & n - (i / 2) & vbCrLf
Else
str = str & " " & String$(n - Fix(i / 2) - 1, " ") & String$(i, "*") & n - (i / 2) & vbCrLf
End If
Next
Text1.Text = str
End Sub
計算結果が.5の場合に半角スペースに返るようにロジックをくんだだけです。
参考になりましたか?
No.2
- 回答日時:
こんにちは、honiyonです。
□□□■
□□■■■
□■■■■■
■■■■■■■
黒が*、白がスペースだと考えてください。
何か思い浮かびませんか?
スペースはいくつずつ減少していますか?*はいくつずつ増加していますか?
どんな計算をすれば良いか思い浮かびませんか?
参考になれば幸いです(..
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
あるあるbotに投稿したけど採用されなかったあるある募集
あるあるbotに投稿したけど採用されなかったあるあるをこちらに投稿してください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
数字でピラミッドを出力させるには・・・。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Pythonの勉強を始めました。バ...
-
Excel VBA 見本通りに...
-
JSONパース時に改行があるとエ...
-
AfterEffectsでイージーイーズ...
-
XMLを作成してもタグしか表示さ...
-
mailtoで本文に改行を入れたい
-
改行できる・できない入力ボッ...
-
Access-テキストボックスの「#N...
-
\\n \\r \\t について
-
自分のサイトを開いた時にウィ...
-
H1タグに改行の<br>を使う
-
Hタグを改行禁止にしてspanのよ...
-
ツールチップの表示時間の調整
-
テーブルの幅を固定するとnowra...
-
文章改行で出来る半角スペース...
-
MMDのAVI出力にとんでもなく時...
-
aviutlで最後まで動画が読み込...
-
<br style="clear:both;">って...
-
長いURLを途中で改行(折り返す...
-
指定URLを新しいウィンドウで開...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 見本通りに...
-
ASP.NET TextBox 入力制限
-
C#のシリアル通信プログラムで...
-
stray '\\240' in programのエ...
-
Pythonの勉強を始めました。バ...
-
ASCII文字列以外を検出する正規...
-
なぜtabによるインデントはいけ...
-
php でtabを空白に変換して表示...
-
ホームページ制作でコピーライ...
-
ボタンコントロールのTEXT...
-
JSONパース時に改行があるとエ...
-
半角スペースを含む文字列を変...
-
Eclipseの空白が変な...
-
ソースコードのインデントについて
-
改行されたデータをIEに貼り付...
-
ソースコードの改行文字は何に...
-
ローマ数字などの文字化け対策...
-
JavascriptでIMEのON,OFF制御
-
外部JavaScriptで書き出す文字...
-
Java Scriptによるテキストエリ...
おすすめ情報